#include "iostream"
#include "stdio.h"
#include <vector>
#include <cstring>
#include <algorithm>
#include <string>
#include <string.h>
#include <stack>
#include <ctype.h>
#include <functional>
#include <math.h>
using namespace std;
//1445
int t[1010];
int T,n,m,a,b;
int findRoot(int a){
if(t[a]==a) return a;
else{
int tmp=findRoot(t[a]);
t[a]=tmp;
return tmp;
}
}
int main(){
//freopen("input.txt","r",stdin);
while(cin>>T){
while(T--){
cin>>n>>m;
for(int i=1;i<=n;i++) t[i]=i;
while(m--){
cin>>a>>b;
a=findRoot(a);
b=findRoot(b);
if(a!=b){
t[a]=b;
}
}
int cnt=0;
for(int i=1;i<=n;i++)
if(t[i]==i)
cnt++;
cout<<cnt<<endl;
}
}
return 0;
}
/**************************************************************
Problem: 1445
User: cust123
Language: C++
Result: Accepted
Time:10 ms
Memory:1524 kb
****************************************************************/
题目1445:How Many Tables
最新推荐文章于 2021-02-24 20:29:12 发布