首页 > 其他 > 详细

欧拉回路

时间:2016-04-19 06:14:21      阅读:152      评论:0      收藏:0      [点我收藏+]
//HDU 1878 欧拉回路
//非并查集写法,欧拉回路的限制条件:1.应该是一个一个连通图
// 2.每一个点应该是有偶数个点和它相连。二者都满足就是一个欧拉回路
#include<stdio.h> #include<stdlib.h> #include<string.h> #define N 1100 int n, m; int maps[N][N], vis[N], visit[N]; void DFS(int x) { visit[x]=1; for(int i=1; i<=n; i++) { if(maps[x][i]&&visit[i]==0) DFS(i); } } int main() { int a, b; while(scanf("%d", &n), n) { scanf("%d", &m); memset(maps, 0, sizeof(maps)); memset(vis, 0, sizeof(vis)); memset(visit, 0, sizeof(visit)); for(int i=0; i<m; i++) { scanf("%d%d", &a, &b); if(maps[a][b]==0) { vis[a]++; vis[b]++; } maps[a][b]=maps[b][a]=1; } int flag=0, flag1=0; DFS(1); for(int i=1; i<=n; i++) if(visit[i]==0) { flag=1; break; } for(int i=1; i<=n; i++) if(vis[i]%2==1) { flag1=1; break; } if(flag==0&&flag1==0) printf("1\n"); else printf("0\n"); } return 0; }

 

欧拉回路

原文:http://www.cnblogs.com/9968jie/p/5406504.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!