题目:http://acm.hdu.edu.cn/showproblem.php?pid=1213
题意:
已知m,n,m代表朋友的数量,有n组人相识,相识的人可以坐一张桌子,求至少需要安排几张桌子。
代码如下:
#include <stdio.h>
int a[1010];
int find(int x)
{
return x==a[x]?x:find(a[x]);
}
void hebin( int x,int y )
{
int fx=find(x);
int fy=find(y);
if(fx!=fy)
a[fx]=fy;
}
int main()
{
int t,e,f,i,m,n;
scanf("%d",&t);
while(t--)
{
int num=0;
scanf("%d%d",&m,&n);
for(i=1;i<=m;i++)
a[i]=i;
for(i=0;i<n;i++)
{
scanf("%d%d",&e,&f);
hebin(e,f);
}
for(i=1;i<=m;i++)
if(a[i]==i)
num++;
printf("%d\n",num);
}
return 0;
}