hdu 1213 How Many Tables
#include<stdio.h>
int bin[1024];
int findx(int x)
{
while(bin[x]!=x)
x=bin[x];
return x;
}
void mergeab(int x,int y)
{
int fx,fy;
fx=findx(x);
fy=findx(y);
if(fx>fy)
bin[fx]=fy;
else bin[fy]=fx;
}
int main()
{
int i,n,m,ans,a,b,T;
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
bin[i]=i;
for(i=0;i<m;i++)
{
scanf("%d%d",&a,&b);
mergeab(a,b);
}
for(i=1,ans=0;i<=n;i++)
{
if(bin[i]==i) ans++;
}
printf("%d\n",ans);
}
return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。http://xiang578.top/