比赛 20160902 评测结果 AAAAAAAATA
题目名称 宗教信仰 最终得分 90
用户昵称 iortheir 运行时间 1.991 s
代码语言 C++ 内存使用 0.45 MiB
提交时间 2016-09-03 08:18:53
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstring>
#include<set>

using namespace std;

int father[50000+10];
int n;
int m;
int kount=0;

inline int find(int x)
{
	if(father[x]!=x)
	{
		father[x]=find(father[x]);
	}
	return father[x];
}

inline void unionn(int x,int y)
{
	x=find(x);
	y=find(y);
	father[x]=y;
}

int main()
{
	freopen("religion.in","r",stdin);
	freopen("religion.out","w",stdout);
	for(int i=1;i<=50010;++i)
	{
		father[i]=i;
	}
	cin>>n>>m;
	int a;
	int b;
	while(m--)
	{
		cin>>a>>b;
		unionn(a,b);
	}
	for(int i=1;i<=n;++i)
	{
		if(father[i]!=i)
		{
			kount++;
		}
	}
	cout<<n-kount<<endl;
	return 0;
}