题目链接:点击打开链接
代码:
#include<iostream>
#include <cstdio>
#include <cstring>
#include <queue>
#include <algorithm>
#include <cmath>
#include <queue>
#include <map>
using namespace std;
int T;
int pre[1005];
int Find(int x){
int r = x;
while(pre[r]!=r){
r = pre[r];
}
int i=x,j;
while(pre[i]!=r){
j = pre[i];
pre[i] = r;
i = j;
}
return r;
}
int main(){
scanf("%d",&T);
int n,m;
while(T--){
scanf("%d%d",&n,&m);
int ans = n;
for(int i=0; i<=n; i++){
pre[i]=i;
}
int x,y;
for(int i=1; i<=m; i++){
scanf("%d%d",&x,&y);
int fx = Find(x), fy = Find(y);
if(fx!=fy){
ans--;
pre[fx] = fy;
}
}
printf("%d\n",ans);
}
return 0;
}