题目大意:
并查集魔板题。
代码:
#include<iostream>
#include<math.h>
#include<stdio.h>
#include<string.h>
#define maxn 1500
using namespace std;
int test;
int n,m;
int boss[maxn];
void init()
{
for(int i=0;i<maxn;i++)
{
boss[i]=i;
}
}
void add(int a,int b)
{
if(boss[a]==a&&boss[b]==b)
{
boss[a]=b;
return;
}
boss[a]=boss[boss[a]];
boss[b]=boss[boss[b]];
add(boss[a],boss[b]);
}
int main()
{
cin>>test;
while(test--)
{
init();
cin>>n>>m;
for(int i=1;i<=m;i++)
{
int a,b;
cin>>a>>b;
add(a,b);
}
int s=0;
for(int i=1;i<=n;i++)
{
if(boss[i]==i)
{
s++;
}
}
cout<<s<<endl;
}
}