```cpp
int find(int i)
{
if(a[i]!=i) a[i]=find(a[i]);
return a[i];
}
```
by Tom_com @ 2017-03-23 18:44:29
应该考虑一下路径压缩问题。直接把你要合并的那个点指向别人就行了。
```cpp
- p=find(x);
- q=find(y);
- a[q]=p;
- a[x]=p
这样的话会更加保险一些
```
by Lyrics @ 2017-07-23 15:06:59