思路:1.先让自己是自己的爸爸
2.下标从1开始,因为城市一般是从1,没有第0个城市。
3.为求统一,一律让大的是小的爸爸,记得swap
(其实也不需要,不swap也能连起来)
const int maxn=1005;
int father[maxn],ans[maxn];
int find(int x){ //查找并认爸爸
if(x!=father[x])
father[x]=find(father[x]);
return father[x];
}
/*int find(int x){
return fa[x] != x ? fa[x] = find(fa[x]) : x;
}*/
void Union(int x,int y){ //x的爸爸是y
int a=find(x);
int b=find(y);
if(a==b)
return;
father[a]=b;
}