---------------------------并查集
int n,m,cnt=0;
int f[10005];
int find(int x){
if(f[x]==x)return x;
return f[x]=find(f[x]);
}
void union(int x,int y){
int a=find(x);
int b=find(y);
if(a!=b){
f[a]=b;
cnt++;
}
}
---------------------------