比赛 至少完成十道练习 评测结果 AAAAAAAAAA
题目名称 宗教信仰 最终得分 100
用户昵称 Mealy 运行时间 1.130 s
代码语言 C++ 内存使用 0.15 MiB
提交时间 2017-05-22 19:25:01
显示代码纯文本
//2451
#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
using namespace std;
const int nmax=50086;
int n,m,s;
int p[nmax];
inline void create(){
	for(int i=1;i<=n;i++) p[i]=i;
}
inline int find(int x){
	if(x==p[x])	return x;
	else p[x]=find(p[x]);
	return p[x];
}
inline void merge(int x,int y){
	int px=find(x);
	int py=find(y);
	p[px]=py;
}

inline int Excited(){
	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--;
			if(n==1){
				printf("1\n");
				return 0;
			}
		}
	}
	printf("%d",n);
	return 0;
}
int XD=Excited();
int main(){;}