随笔分类 - 数据结构-并查集
摘要:前置知识 "最小生成树及证明" 做法 每个不同权值没影响,仅需判断该次询问每种权值是否在"小于该权值的所有边加完"之后,可以全部加进来 离线:询问的所有边全堆到一起,按权值排序,然后同种权值的同种查询完再撤销 在线:预处理每条边在小于等于该权值的边加完之后所处联通块,然后查询时单独判断每种权值即可
阅读全文
摘要:按秩合并 并查集做成一棵树,启发式维护树高,实现$O(logn)$,我们可以对节点进行一些处理,维护带权 "模板" 经典例题:$连接(u,v)$,查询$(u,v)$什么时候联通的 每个点有一个权值,为该子树与外部联通的时间 可撤销 另一大优点是可撤销,将撤销后的影响通过栈存起来实现(换父亲,高度与子
阅读全文
摘要:题目 "洛谷" 后缀数组一眼题系列 做法 $r$相似用$height$数组处理,每次按$height$分裂区间,显然是有单调性的 所求的$r_0^{n 1}$,$O(n^2)$是过不了的 利用单调性,上烂大街的离线并查集 并查集要维护:大小,最大值,次大值,最小值,次小值(由于这里$a_i$为整数,
阅读全文
摘要:题目 "P4121 [WC2005]双面棋盘" 貌似是刘汝佳出的题目?? 做法 线段树维护并查集 线段树分治$1$~$n$行,我们要考虑维护的肯定是黑、白各自的联通块数量 考虑区间合并,其实就与中间这两层有关,$(n≤200)$并查集暴力做一下就好了 My complete code cpp inc
阅读全文