POJ 1232 Ubiquitous Religions(基础并查集)

xiaoxiao2021-02-28  76

并查集的基础题目,最简单套个模板就可以通过

#include<iostream> #include<cstdio> #include<cstring> #include<functional> #include<algorithm> int n,m,a,b,cnt; int fa[50000]; void init() { cnt=0; for(int i=1;i<=n;i++) fa[i]=i; } int getfa(int x) { if(x==fa[x]) return x; else return fa[x]=getfa(fa[x]); } void merge(int u,int v) { int t1,t2; t1=getfa(u); t2=getfa(v); if(t1!=t2) fa[t1]=t2; } int main() { int i; int test=1; while(scanf("%d%d",&n,&m),n&&m) { init(); for(i=1;i<=m;i++) { scanf("%d%d",&a,&b); merge(a,b); } for(i=1;i<=n;i++) if(fa[i]==i) cnt++; printf("Case %d: %d\n",test++,cnt); } return 0; }

转载请注明原文地址: https://www.6miu.com/read-85626.html

最新回复(0)