并查集模板

Posted qdu-lkc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了并查集模板相关的知识,希望对你有一定的参考价值。

并查集

1.合并两个集合

2.查询两个数是否在一个集合

基本原理:

每个集合用一棵树来表示,树根的编号就是整个集合的编号,每个结点存储他的父节点,p[x]表示x的父节点

1.是否是一个集合 if( find(a)==find(b) )

2.合并两个集合 p[find(a)]=find(b) 

        static int p[]=new int[N];
        static int find(int x){ //返回x的祖宗结点+路径压缩
                if(p[x]!=x) p[x]=find(p[x]);
                return p[x];
        }

技术图片

 

以上是关于并查集模板的主要内容,如果未能解决你的问题,请参考以下文章

Tarjan 模板,高级并查集

并查集题目模板及java代码

并查集模板(洛谷——模板并查集)

并查集模板

带权并查集(含种类并查集)经典模板 例题:①POJ 1182 食物链(经典)②HDU - 1829 A bug's life(简单) ③hihoCoder 1515 : 分数调查(示例代码(代

ybtoj并查集例题1模板并查集