这两种方法不应该是一样的吗?
by RiverFun @ 2018-08-28 18:05:47
@[Steve_braveman](/space/show?uid=96570) 您第一种写法是不是没写 else (fa[a] == a) 的情况?
by Anguei @ 2018-08-28 18:07:47
震惊!红名大佬为什么假装新人,而新人竟会并查集!网友:简直颠覆人生观
by goodlearndaydayup @ 2018-08-28 18:07:52
@[yyfcpp](/space/show?uid=53062) 是的
by RiverFun @ 2018-08-28 18:09:04
等等这玩意绿题。。。
by Nova_守门员 @ 2018-08-28 18:11:07
@[Steve_braveman](/space/show?uid=96570) 所以当 fa[a] == a 的时候就没有 return 喽?
by Anguei @ 2018-08-28 18:17:42
@[yyfcpp](/space/show?uid=53062) 是的。。。。
by RiverFun @ 2018-08-28 18:28:05
@[yyfcpp](/space/show?uid=53062) 等等,好像不是,这是我RE的代码
```cpp
#include<iostream>
#include<cstdio>
using namespace std;
int fa[1000005];
int find(int a){
if(fa[a]!=a) fa[a]=find(fa[a]);
return a;
}
void un(int a,int b){
a=find(a);
b=find(b);
fa[b]=a;
}
int main(){
int n,a;
cin>>n;
for(int i=1;i<=n;i++){
fa[i]=i;
}
for(int i=1;i<=n;i++){
scanf("%d",&a);
un(i,a);
}
int ans=0;
for(int i=1;i<=n;i++){
if(fa[i]==i) ans++;
}
cout<<ans<<endl;
}
```
by RiverFun @ 2018-08-28 18:31:29
小粉红?
by kitakami @ 2018-08-28 18:37:10
@[萝莉大法好](/space/show?uid=56251) 什么小粉红
by RiverFun @ 2018-08-28 18:44:08