你就把递归用while弄一遍呗,需要用的东西开个栈就好了
by Ew_Cors @ 2021-02-27 13:12:28
手写栈
by _Life_ @ 2021-02-27 13:12:54
```cpp
class Union_Set{
private:
int f[16384];
int Find(int x){
while(f[x]^x)x=f[x];
return x;
}
public:
void Init(int n){
for(int i=1;i<=n;i++)f[i]=i;
}
void Change(int x,int y){
int a=Find(x),b=Find(y),c;
if(a==b)return;
f[a]=b;
while(f[x]!=x)c=f[x],f[x]=b,x=c;
while(f[y]!=y)c=f[y],f[y]=b,y=c;
}
void Query(int x,int y){
if(Find(x)^Find(y))cout<<"N"<<endl;
else cout<<"Y"<<endl;
}
};
Union_Set ust;
```
这是本蒟蒻写的并查集模板,不喜勿喷QwQ
by abuyao @ 2021-02-27 13:15:10
@[lao_li](/user/317650) 这不是while版的吗QwQwQ
by abuyao @ 2021-02-27 13:24:59
@[abuyao](/user/285373)
~~啊我眼瞎了~~ 这不是带权的qwq
by lao_li @ 2021-02-27 13:26:23
@[lao_li](/user/317650) 再改改不就行了吗QwQwQwQ
by abuyao @ 2021-02-27 13:31:26
自己写好了,欢迎来我的博客看看,谢谢大家(撒花)
by lao_li @ 2021-02-27 13:35:03