基础并查集
#include<iostream>
#include<cstdio>
#include<set>
using namespace std;
const int N=1e3+5;
int fa[N],n,k;
int find(int x){
return fa[x]==x?x:fa[x]=find(fa[x]);
}
void Merge(int x,int y){
int u=find(x);
int v=find(y);
if(u!=v){
--n;
fa[v]=u;
}
}
void init(int n){
for(int i=1;i<=n;i+=1) fa[i]=i;
}
int main(){
int T;
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&n,&k);
init(n);
while(k--){
int x,y;
scanf("%d%d",&x,&y);
Merge(x,y);
}
printf("%d\n",n);
}
return 0;
}