#define _CRT_SECURE_NO_WARNINGS
#include<math.h>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
using namespace std;
typedef long long ll;
const int inf = 0x3f3f3f3f;
const int N = 1e6 + 5;
int f[100];
int n, m;
int getf(int v)
{
if (f[v] == v)
{
return v;
}
else
{
f[v] = getf(f[v]);
return f[v];
}
}
void merge(int u, int v)
{
int t1, t2;
t1 = getf(u);
t2 = getf(v);
if (t1 != t2)
{
f[t2] = t1;
}
}
int main()
{
int i, x, y;
cin >> n >> m;
for (i = 1; i <= n; i++)
{
f[i] = i;
}
for (i = 1; i <= m; i++)
{
cin >> x >> y;
merge(x, y);
}
int sum = 0;
for (i = 1; i <= n; i++)
{
if (f[i] == i)
{
sum++;
}
}
cout << sum;
return 0;
}
并查集算法
最新推荐文章于 2024-05-20 20:08:58 发布