比赛 9.6 评测结果 AAAAAAAAAA
题目名称 宗教信仰 最终得分 100
用户昵称 彭欣越 运行时间 1.041 s
代码语言 C++ 内存使用 3.59 MiB
提交时间 2024-09-06 19:16:40
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,m,res;
int f[50010],mk[50010];
int find (int x) {
	if (f[x]==x) return x;
	return f[x]=find(f[x]);
}
int main () {
	freopen("religion.in","r",stdin);
	freopen("religion.out","w",stdout);
	ios::sync_with_stdio(0);
	cin.tie(0),cout.tie(0);
	for (int i=1;i<=50000;i++) f[i]=i;
	cin >> n >> m;
	for (ll i=1;i<=m;i++) {
		int x,y;
		cin >> x >> y;
		int fx=find(x),fy=find(y);
		if (fx==fy) continue;
		f[fx]=fy;
	}
	for (int i=1;i<=n;i++) {
		if (mk[find(i)]) continue;
		mk[find(i)]=1;
		res++;
	}
	cout << res;
	return 0;
}