您的位置:首页 > 其它

bzoj1529 [POI2005]ska Piggy banks(并查集)

2017-09-05 14:03 405 查看
水题一道。

#include<cstdio>
#include<cstring>
int n,ans=0,fa[1000001];
inline int find(int x){return x==fa[x]?x:fa[x]=find(fa[x]);}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;++i) fa[i]=i;
for(int i=1;i<=n;++i){
int y;scanf("%d",&y);
int xx=find(i),yy=find(y);
if(xx!=yy) fa[xx]=yy;
}
for(int i=1;i<=n;++i) if(fa[i]==i) ans++;
printf("%d",ans);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: