模板:并查集

来源:互联网 发布:易语言dnf辅助源码模板 编辑:程序博客网 时间:2024/05/29 12:56

思路: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;}


原创粉丝点击