![](https://img2018.cnblogs.com/blog/1620937/201904/1620937-20190412203956895-1564180159.gif)
↑杭电oj ----1213
Accepted |
1213 |
0MS |
1220K |
549 B |
G++ |
#include <cstdio>
#include <cstring>
using namespace std;
int arr[10005];
int find(int a){
if(arr[a]==-1) return a;
return arr[a]=find(arr[a]);//减脂
}
int main()
{
int t,n,m,a,b,num;
scanf("%d",&t);
while(t--)
{
num=0;
memset(arr,-1,sizeof(arr));
scanf("%d%d",&n,&m);
for(int i=0;i<m;i++)
{
int fa,fb;
scanf("%d%d",&a,&b);
fa=find(a);
fb=find(b);
if(fa!=fb)
arr[fa]=fb;//将一个朋友定位另一个的上级
}
for(int i=1;i<=n;i++)
{
if(arr[i]==-1)//-1为最上级,没有任何改动
num++;
}
printf("%d
",num);
}
return 0;
}