Hdu1213 - How Many Tables - 并查集

来源:互联网 发布:古力娜扎长相知乎 编辑:程序博客网 时间:2024/06/09 18:02
#include<stdio.h>#include<string.h>int p[10000],a,ap[10000],b,bp[10000],m,c,n;int find(int n){if(p[n]!=n){p[n]=find(p[n]);}return p[n];}int main(){int i,k,t;scanf("%d",&t);for(k=0;k<t;k++){scanf("%d%d",&n,&m);for(int i=1;i<=n;i++) p[i]=i;for(int i=1;i<=m;i++){scanf("%d%d",&a,&b);ap[i]=find(a);bp[i]=find(b);p[ap[i]]=bp[i];}for(c=0,i=1;i<=n;i++){if(p[i]==i){c++;}}printf("%d\n",c);}return 0;}

0 0