比赛 |
至少完成十道练习 |
评测结果 |
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(){;}