并查集(查找优化——加权法则)

来源:互联网 发布:云计算 erp 标题 编辑:程序博客网 时间:2024/05/01 05:06



通过判断fa[ ]大小,从而判断子树和父树。


void init(){for(int i=0;i<maxn;i++)fa[i]=-1;}int Find(int x){int s;for(s=x;fa[s]>=0;s=fa[s]);while(s!=x){int tmp=fa[x];fa[x]=s;x=tmp;}return s;}void Union(int x1,int y1){int x=Find(x1),y=Find(y1);int tmp=fa[x]+fa[y];if(fa[x]>fa[y]){fa[x]=y;fa[y]=tmp;}else{fa[y]=x;fa[x]=tmp;}}


0 0