记录编号 |
302193 |
评测结果 |
AAAAAAAATA |
题目名称 |
宗教信仰 |
最终得分 |
90 |
用户昵称 |
农场主 |
是否通过 |
未通过 |
代码语言 |
C++ |
运行时间 |
1.421 s |
提交时间 |
2016-09-03 16:20:12 |
内存使用 |
12.46 MiB |
显示代码纯文本
#include<cstdio>
#include<queue>
#include<algorithm>
#include<vector>
#define maxn 1000000
using namespace std;
vector<int> G[maxn];
int vis[maxn]={0},tot=0;
queue<int> q;
inline void bfs(int x){
tot++;
vis[x]=tot;
q.push(x);
//printf("\n");
while (!q.empty()){
int f=q.front();
//printf("%d\n",f);
for (int i=0;i<G[f].size();i++) if(vis[G[f][i]]==0){
q.push(G[f][i]);
vis[G[f][i]]=tot;
}
q.pop();
}
}
int main(){
freopen("religion.in","r",stdin);
freopen("religion.out","w",stdout);
int n,m;
scanf("%d%d",&n,&m);
int a,b;
for (int i=1;i<=m;i++){
scanf("%d%d",&a,&b);
G[a].push_back(b);
G[b].push_back(a);
}
for (int i=1;i<=n;i++){
if (vis[i]==0) bfs(i);
}
printf("%d",tot);
return 0;
}