并查集
直奔主题
并查集的作用?
就是无向图中点的相互连接,判断几个点是否连在一起,或者连在一起的点之间的距离
最基础的并查集的模板:
int find(int x) { return p[x]==x?p[x]:p[x]=find(p[x]); }
这是很简单的,由此模板延伸出来的几个关键点:
(1)不是孤立的点的相连,而是放在图里判断是否成环
这个题就是将点放在图里,延伸成边,判断是否成正方形(环)。
(2)并查集与DP的结合
01背包问题中,加入并查集合,将几个背包连在一起。
(3)并查集与离散化结合
例题:237. 程序自动分析 - AcWing题库、239. 奇偶游戏 - AcWing题库
并查集合元素大小比较大,而集合大小有限,这时候必须用离散化,离散集合
(4)带边权的并查集
初始化每个集合的大小,并且能够求出集合内元素与元素之间的距离大小
(5)带边权的并查集和扩展域的方法
例题:239. 奇偶游戏 - AcWing题库、240. 食物链 - AcWing题库
这两个题是重点 建议反复复习。
具体的方法建议结合题目复习吧,一两句也总结不来
end!!!

浙公网安备 33010602011771号