摘要:
并查集是一种多叉树,用于处理一些不相交集合的合并与查询问题。 初始化 每个结点单独作为一个集合。 查询 求元素所在集合的代表元素,即根结点。 合并 将两个元素所在的集合合并为一个集合。 合并之前,应先判断两个元素是否属于同一集合,用上面的查询来实现。 实现流程 动态集合中每一个元素由一个对象来表示, 阅读全文
posted @ 2022-05-27 17:39
Audrey_Hall
阅读(65)
评论(0)
推荐(0)
摘要:
堆结构是一种数组对象,是一棵完全二叉树。 性质 若当前节点编号为i,父结点则为i/2,左孩子为2i,右孩子为2i+1。 堆的结点数$\le$数组长度len 下图为一个大根堆:每个结点均小于其父结点,树根是堆中最大的结点,小根堆反之。 添加 往堆中添加一个元素。 重复n次添加操作,即可建立一个小根堆。 阅读全文
posted @ 2022-05-27 16:48
Audrey_Hall
阅读(284)
评论(0)
推荐(0)
摘要:
位运算 与& 或| 异或^ 左移<< 右移>> \(x<<y=x·2^{y}\) \(x>>y=\frac{x}{2^{y}}\) \(2a+1=(a<<1)|1\) \(a\)%\(2=a\)&\(1\) st表 当st表合并的复杂度为$O(1)$时,st表构建的复杂度为$O(nlogn)$,查询 阅读全文
posted @ 2022-05-27 15:43
Audrey_Hall
阅读(140)
评论(0)
推荐(0)
摘要:
RMQ(Range Mininum/Maxinum Query) 区间最值问题 解决方法 若需要修改,常常使用线段树等数据结构。 若不需要修改,一般使用st表。 例题 给定M及N个数(1<N<=2500000),每个数在0到100000之间。 输出每M个数中的最大数,即1M中的最大数,2M+1中的最 阅读全文
posted @ 2022-05-27 10:37
Audrey_Hall
阅读(57)
评论(0)
推荐(0)
摘要:
组合数学 排列与组合 抽屉原理(鸽巢原理) 把n+1个苹果放入n个抽屉里,则至少有一个抽屉放了两个或两个以上的苹果; 从另一个角度来说,把n-1个苹果放入n个抽屉,则至少有一个抽屉是空的。 如果每个抽屉代表一个集合,每一个苹果就可以代表一个元素。 假如有n+1个元素放入n个集合,其中必定有一个集合里 阅读全文
posted @ 2022-05-27 10:09
Audrey_Hall
阅读(721)
评论(0)
推荐(0)

浙公网安备 33010602011771号