没别的,只是贴出来留个历史
#include <iostream>
#include <algorithm>using namespace std;
int parent[1005];
int find_parent(int a)
{
return parent[a] == a ? parent[a] : parent[a] = find_parent(parent[a]); //路径压缩
}
int main(void)
{
int M, N, T;
cin >> T;
while (T--)
{
cin >> N >> M;
for (int i = 1; i <= N; ++i)
parent[i] = i;
for (int i = 1; i <= M; ++i)
{
int a, b;
cin >> a >> b;
int m = find_parent(a);
int n = find_parent(b);
if (m != n)
parent[m] = n;
}
int ans = 0;
for (int i = 1; i <= N; ++i)
if (parent[i] == i)
ans++;
cout << ans << endl;
}
return 0;
}