题意是有n个人,每个人有一个信仰,每次给出一队人的信仰是一样的,问一共有多少种信仰。
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<iostream>
#include<cstring>
using namespace std;
int fa[111111];
int find_fa(int n) {
return fa[n]==n?n:find_fa(fa[n]);
}
void inti(int n) {
for(int i=1;i<=n;i++) {
fa[i]=i;
}
}
int main()
{
int n,m;
int kase=0;
while(scanf("%d%d",&n,&m)&&(m+n)!=0) {
inti(n);
int tt=n;
int a,b;
for(int i=1;i<=m;i++) {
scanf("%d%d",&a,&b);
int fx=find_fa(a);
int fy=find_fa(b);
if(fx!=fy) {
fa[fy]=fx;
tt--;
}
}
printf("Case %d: %d\n",++kase,tt);
}
return 0;
}