题目
https://vjudge.net/problem/HDU-1213
思路
并查集果题
代码
#include <iostream>
#include <vector>
#include <cstring>
#define MAXX 1005
#define inf 0x3f3f3f3f
using namespace std;
int a[MAXX], num;
int Find(int x)
{
if (x == a[x])
return x;
else
{
a[x] = Find(a[x]);
return a[x];
}
}
int main()
{
int N;
cin >> N;
while (N--)
{
int m;
cin >> num >> m;
for (int i = 1; i <= num; ++i)
{
a[i] = i;
}
for (int i = 0; i < m; ++i)
{
int x, y,fx,fy;
cin >>x>>y;
fx = Find(x);
fy = Find(y);
if (fx!=fy)
{
a[fy] = fx;
num--;
}
}
cout<<num<<endl;
}
return 0;
}