Hust oj 1351 欧拉路径(欧拉路径)
2016-07-29 22:28
387 查看
欧拉路径 | ||||||
| ||||||
Description | ||||||
七桥问题Seven Bridges Problem 18世纪著名古典数学问题之一。在哥尼斯堡的一个公园里,有七座桥将普雷格尔河中两个岛及 岛与河岸连接起来(如图)。 问是否可能从这四块陆地中任一块出发,恰好通过每座桥一次,再回到起点? 将一个岛看为一个节点,桥看为一个边,就将该问题转化成了图论问题,这样的一条路径成为一条欧拉路 径,如果图中存在恰好两个度数为奇数的节点,那么该图一定存在一条能够经过所有边且仅一次的路径, 称为有欧拉通路,如果图中所有节点的度都为偶数,那么该图一定存在一条路径能够经过所有边一次且回 到起点,称为有欧拉回路,现在给定一个图,判断该图是否有欧拉通路或者回路。 | ||||||
Input | ||||||
输入有多组数据,每组数据包括两个整数N,M,分别表示节点数量和边的数量,3<=N<=100,M<20000,然后 是M行,每行两个整数a,b表示两个节点间有一条无向边,节点编号从1到N。 | ||||||
Output | ||||||
对每组测试数据,如果存在欧拉路径,输出“have Euler path”,如果存在欧拉回路,输出“have Euler Circuit“, 如果原图不连通,输出”Graph is not connected!“,否则输出”have no Euler path“。 | ||||||
Sample Input | ||||||
4 7 1 2 1 2 2 3 2 3 1 4 2 4 3 4 | ||||||
Sample Output | ||||||
have no Euler path #include<cstdio> #include<iostream> #include<cstring> using namespace std; const int maxn = 105; int degree[maxn]; int map[maxn][maxn]; int vis[maxn]; int n,m; int ans; void init() { memset(map,0,sizeof(map)); memset(vis,0,sizeof(vis)); memset(degree,0,sizeof(degree)); } void dfs(int x) { vis[x] = 1; for(int i=1;i<=n;i++) { if(!vis[i] && map[x][i]) dfs(i); } return ; } int check() { for(int i=1;i<=n;i++) { if(degree[i] % 2 != 0) ans++; } return ans; } int main() { while(~scanf("%d%d",&n,&m)) { init(); int a,b; int cnt = 0; int flag = 0; for(int i=0;i<m;i++) { scanf("%d%d",&a,&b); map[a][b] = map[b][a] = 1; degree[a]++; degree[b]++; } dfs(1); ans = 0; for(int i=1;i<=n;i++) { if(!vis[i]) { flag = 1; break; } } if(flag) printf("Graph is not connected!\n"); else if(!flag && check() == 2) printf("have Euler path\n"); else if(!flag && check() == 0) printf("have Euler Circuit\n"); else printf("have no Euler path\n"); } } |
相关文章推荐
- POJ 2513 Colored Sticks
- SGU 101 Domino
- Codeforces Round #288 (Div. 2) D.Tanya and Password(欧拉路径)
- HDU 3018 Ant Trip (欧拉路径)
- HDU 1116 && POJ 1386 Play on Words(欧拉路径)
- The Necklace
- 【欧拉路径(有向图)】poj 1386 play on words
- HDU 1116(并查集,欧拉路径)
- SGU 101 欧拉路
- UVa--10129 Play on Words(欧拉通路)
- cpp环境【Uva10129】【VIJOS2863】玩弄单词
- CCF 送货 (欧拉回路+字典序打印路径)
- 判断欧拉路径(非并查集写法)
- CCF 201512-4 送货(欧拉路径+字典序最小)
- hdu 5883 The Best Path 欧拉路径 & 欧拉回路 并查集
- hihocoder 1181(浅谈佛罗莱算法在求欧拉路径可行解中的应用)
- Catenyms(有向欧拉图+判断回路+打印路径)
- 201512-4-送货
- 201412-2-Z字形扫描
- 5883-The Best Path