前两天学习了并查集,感觉很好
,主要是因为有一个讲解非常形象的博客(http://blog.csdn.net/dellaserss/article/details/7724401),理解很深刻。。
int find(int x)
{
int r=x;
while(r!=a[r])
r=a[r];
while(r!=x)
{
int j=a[x];
a[x]=r;
x=j;
}
return r;
}
void mix(int x, int y)
{
int i;
int fx=find(x);
int fy=find(y);
if(fx!=fy)
a[fx]=fy;
}