并查集整理
Posted 嗯我想想
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了并查集整理相关的知识,希望对你有一定的参考价值。
并查集
可以解决的问题:
核心操作 find
int find(int x)
if (p[x] != x) p[x] = find(p[x]);
return p[x];
初始化(最开始代表一个点是一个集合)
for(int i = 1; i <= n; i++)
p[i] = i;
判断两个元素是否属于一个集合
if(find(a) == find(b))
cout << "Yes" << endl;
else
cout << "No" << endl;
判断最后有几个集合
int cnt = 0;
for(int i = 1;i <= n; i++)
if(p[i] == i) cnt++
以上是关于并查集整理的主要内容,如果未能解决你的问题,请参考以下文章