随笔分类 - OI / 算法
摘要:分块是一种思想,通过对原数据的适当划分,并在划分后的每一个块上预处理部分信息,从而较一般的暴力算法取得更优的时间复杂度。 分块的应用面十分广泛,包括但不限于数组、树形结构等。 1. 块状数组 块状数组是分块思想最简单的应用。 它将一个数组分成若干块,然后对数组进行区间操作。对于每一个区间操作,区间中
阅读全文
摘要:平衡树,是一种数据结构,可以实现一类元素在线性结构中动态变化,基于二叉搜索树,满足二叉搜索树的所有性质。 二叉搜索树(BST) 二叉搜索树是一种二叉树形结构,它满足以下性质: 空树是二叉搜索树。 若二叉搜索树的左子树不为空,则其左子树上所有点的附加权值均小于其根节点的值。 若二叉搜索树的右子树不为空
阅读全文
摘要:-1 最短路径 最短路径是指在一个有权图中,一个点到另一个点的路径中,边权和最小的路径。 在本章所有内容中,我们始终定义 \(n\) 为图的点数,\(m\) 为图的边数。 -1.1 单源最短路径 单源最短路径是指单起点,多终点的最短路径。 在本节中,我们始终定义 \(dis_i\) 为源点到点 \(
阅读全文
摘要:-1919810.前言 如果你想要学好 Kruskal 的话,那么你就得先学好 Kruskal ,你一看这个 Kruskal,你想掌握它还真不容易,基础知识里头你就得掌握 Kruskal、Kruskal、甚至还有 Kruskal 等高级算法!!所以这个 Kruskal 的学习是层层递进的。 -114
阅读全文
摘要:线段树(Segment Tree),OI 中十分常用的一个数据结构,适用于一个序列的区间修改、区间询问交叉进行的问题。 线段树可以非常高效地维护区间,它可以在 \(\Theta(\log n)\) 的复杂度内完成一次区间修改或者查询。 它的原理非常简单,就是将一个序列投射到一颗平衡二叉树上,树上的每
阅读全文

浙公网安备 33010602011771号