#include <iostream>
using namespace std;
const int N=100010;
int p[N];
int find(int x) //寻找一个元素在哪个集合;
{
while(p[x]!=x)x=find(p[x]);
if(p[x]==x)return x;
}
将两个集合合并:
int with(int a//属于集合1,int b//属于集合2)
{
p[find(a)]=find(b);
}
#include <iostream>
using namespace std;
const int N=100010;
int p[N];
int find(int x) //寻找一个元素在哪个集合;
{
while(p[x]!=x)x=find(p[x]);
if(p[x]==x)return x;
}
将两个集合合并:
int with(int a//属于集合1,int b//属于集合2)
{
p[find(a)]=find(b);
}