比赛 20160902 评测结果 AAAAAAAATA
题目名称 宗教信仰 最终得分 90
用户昵称 Mealy 运行时间 1.460 s
代码语言 C++ 内存使用 0.50 MiB
提交时间 2016-09-02 19:52:43
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
using namespace std;
const int nmax=50086;
int n,m,s;
int p[nmax];
void create()
{
	for(int i=1;i<=n;i++)
		p[i]=i;
}
int find(int x)
{
	if(x==p[x])
		return x;
	else
		p[x]=find(p[x]);
	return p[x];
}
void merge(int x,int y)
{
	int px=find(x);
	int py=find(y);
	p[px]=py;
}

int main()
{
	freopen("religion.in","r",stdin);
	freopen("religion.out","w",stdout);
	scanf("%d%d",&n,&m);
	create();
	for(int i=1;i<=m;i++)
	{
		int tmpa,tmpb;
		scanf("%d%d",&tmpa,&tmpb);
		if(find(tmpa)!=find(tmpb))
		{
			merge(tmpa,tmpb);
			n--;
		}
	}
	printf("%d",n);
	return 0;
}