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;
}
}
}
並查集
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.