题意:
对于给出的人物关系,求出共有几波人。比如1认识2,2认识3,那么1,2,3就是同一波人。
思路:
就是并查集,没有坑点。
#include<iostream>
#include<cstdio>
using namespace std;
int f[1100];
int n,m,co;
void mem(){
for(int i=1;i<=n;i++)
f[i]=i;
}
int find(int x){
if(x!=f[x])
f[x]=find(f[x]);
return f[x];
}
void uni(int a,int b){
a=find(a);
b=find(b);
if(a!=b){
f[a]=b;
}
}
int main(){
int t;
scanf("%d",&t);
while(t--){
scanf("%d%d",&n,&m);
co=0;
mem();
int a,b;
for(int i=0;i<m;i++){
scanf("%d%d",&a,&b);
uni(a,b);
}
for(int i=1;i<=n;i++)
if(f[i]==i) co++;
printf("%d\n",co);
}
return 0;
}
\