```f[x]=find(f[x]);```
by Lacrymabre @ 2019-11-13 22:28:18
下一次调用就不用把每个数据递归一次了
by 一濑红莲 @ 2019-11-13 22:32:56
@[沈先生](/user/248056) 相当于直接让某个人父亲的所有儿子和父亲平起平坐,给原来的爷爷当儿子,然后递归处理这种情况
by SomeyaMako @ 2019-11-13 22:35:58
~~~
int find(int x)//这样写貌似不用担心栈溢出
{
int r=x;
while(f[r]!=r) r=f[r];
int i=x,j;
while(i!=r) j=f[i],f[i]=r,i=j;
return r;
}
by Minecraft万岁 @ 2019-11-13 22:39:40
@[沈先生](/user/248056) 康康这个
[戳我](https://visualgo.net/en/ufds)
by Belarus @ 2019-11-13 22:42:19
@[爆零_自动机](/user/120438) 谢谢大佬
by 沈先生 @ 2019-11-14 01:46:33
@[一濑红莲](/user/16129) 谢谢大佬
by 沈先生 @ 2019-11-14 01:46:44
@[SomeyaMako](/user/115335) 谢谢大佬
by 沈先生 @ 2019-11-14 01:46:58
@[Minecraft万岁](/user/219198) 谢谢大佬
by 沈先生 @ 2019-11-14 01:47:09
@[Belarus](/user/223392) 谢谢大佬!!
by 沈先生 @ 2019-11-14 01:47:34