PC/UVa 111002/10054 The Necklace
2011-04-20 00:22
555 查看
这题就是无向图的欧拉回路问题,要注意的是:(1)图要是连通的,(2)欧拉回路/欧拉路径的输出
下面代码在uva上提交是ac的,,但不知道为什么在pc上是wa。。求大牛指导~
下面代码在uva上提交是ac的,,但不知道为什么在pc上是wa。。求大牛指导~
#include<stdio.h> #include<string.h> const int maxn = 51; int g[maxn][maxn]; bool vis[maxn]; bool app[maxn]; int deg[maxn]; int n; void dfs(int cur) { for(int i = 1; i < maxn; i++) if(g[cur][i] && !vis[i]) { vis[i] = true; dfs(i); } } bool isconnected() { for(int i = 1; i < maxn; i++) if(app[i]) { vis[i] = true; dfs(i); break; } for(int i = 1; i < maxn; i++) if(app[i] && !vis[i]) return false; return true; } bool iseuler() { for(int i = 1; i < maxn; i++) if(app[i] && deg[i]%2) return false; return true; } void euler(int u) { for(int v = 1; v < maxn; v++) if(g[u][v]) { g[u][v]--; g[v][u]--; euler(v); printf("%d %d/n", v, u); } } #define LOCAL int main() { #ifdef LOCAL freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); #endif int test; scanf("%d", &test); for(int t = 0; t < test; t++) { if(t) printf("/n"); printf("Case #%d/n", t+1); scanf("%d", &n); memset(g, 0, sizeof(g)); memset(vis, false, sizeof(vis)); memset(app, false, sizeof(app)); memset(deg, 0, sizeof(deg)); for(int i = 0; i < n; i++) { int a, b; scanf("%d%d", &a, &b); g[a][b]++; g[b][a]++; app[a] = app[b] = true; deg[a]++; deg[b]++; } if(isconnected() && iseuler()) { for(int i = 1; i < maxn; i++) if(app[i]) { euler(i); break; } } else printf("some beads may be lost/n"); } return 0; }
相关文章推荐
- UVA10054 The Necklace(欧拉回路)
- UVA 10054 The Necklace -欧拉回路
- UVA10054 The Necklace
- UVA 10054 - The Necklace 欧拉回路
- UVA 10054 The Necklace (无向图的欧拉回路)
- UVA 10054 - The Necklace 欧拉回路
- The Necklace ——UVA - 10054(欧拉回路)
- UVa 10054 - The Necklace, 欧拉回路+打印路径
- UVA10054 The Necklace
- UVA 10054 The Necklace(euler)
- uva 10054 The Necklace
- UVA - 10054 The Necklace
- uva 10054 The Necklace(欧拉回路)
- UVa 10054 (打印欧拉回路) The Necklace
- uva_10054_The Necklace(欧拉回路+打印路径)
- UVA 10054 The Necklace
- UVA - 10054 The Necklace (欧拉回路)
- UVA 10054 The Necklace(欧拉回路+输出路径)
- UVA 10054 The Necklace(欧拉回路,打印路径)
- uva 10054--The Necklace