并查集
int find(int x){
return f[x]==x?x:f[x]=find(f[x]);
}
void aref(int u,int v){
int root1 = find(u);
int root2 = find(v);
if(root1!=root2){
f[root1]=f[root2];
}
}
int find(int x){
return f[x]==x?x:f[x]=find(f[x]);
}
void aref(int u,int v){
int root1 = find(u);
int root2 = find(v);
if(root1!=root2){
f[root1]=f[root2];
}
}