#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
int map[1010];
int getboss(int a){
if(map[a]==a){
return map[a];
}
else{
map[a]=getboss(map[a]);
return map[a];
}
}
void merge(int a,int b){
int t1=getboss(a);
int t2=getboss(b);
if(t1!=t2){
map[t2]=t1;
}
return;
}
int main(){
int t,i,j;
scanf("%d",&t);
for(j=0;j<t;j++){
int n,m,out=0;
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++){
map[i]=i;
}
for(i=0;i<m;i++){
int temp1,temp2;
scanf("%d%d",&temp1,&temp2);
merge(temp1, temp2);
}
for(i=1;i<=n;i++){
if(map[i]==i){
out++;
}
}
printf("%dn",out);
}
return 0;
}
近期评论