并查集

来源:互联网 发布:褥子什么材质的好 知乎 编辑:程序博客网 时间:2024/06/07 05:26
const int maxn=333;int n;int parent[maxn];void UFSet(){for(int i=0;i<=n;i++)parent[i]=-1;}int find(int x){int s=x;while(parent[s]>0)s=parent[s];int tmp;while(s!=x){tmp=parent[x];parent[x]=s;x=tmp;}return s;}void Union(int x,int y){int xx,yy,tmp;xx=find(x);yy=find(y);if(xx!=yy){tmp=parent[xx]+parent[yy];if(parent[xx]<parent[yy]){parent[yy]=x;parent[xx]=tmp;}else{parent[xx]=y;parent[yy]=tmp;}}}

原创粉丝点击