HDU 1213 How Many Tables

来源:互联网 发布:加密狗软件安装 编辑:程序博客网 时间:2024/05/01 15:48

题意:

对于给出的人物关系,求出共有几波人。比如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;}