比赛 9.6 评测结果 AWWAWWWWTW
题目名称 宗教信仰 最终得分 20
用户昵称 喵喵喵 运行时间 2.577 s
代码语言 C++ 内存使用 3.35 MiB
提交时间 2024-09-06 20:19:38
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
int n,m;
int f[500005];
void init()
{
	for(int i = 1;i <= n;i++)
	{
		f[i] = i;
	}
	return;
}
int get(int x)
{
	while(f[x] != x) x = f[x];
	return x;
}
void merge(int x,int y)
{
	f[max(x,y)] = min(x,y);
	return;
}
int main()
{
	freopen("religion.in","r",stdin);
	freopen("religion.out","w",stdout);
	cin >> n >> m;
	init();
	for(int i = 0;i < m;i++)
	{
		int a,b;
		cin >> a >> b;
		if(get(a) != get(b)) merge(a,b);
	}
	long long ans = 0;
	for(int i = 1;i <= n;i++)
	{
		if(f[i] == i) ans++;
	}
	cout << ans << endl;
	return 0;
}