UVa 10054,欧拉回路
2016-09-15 15:03
232 查看
题目链接:https://uva.onlinejudge.org/external/100/10054.pdf
题目链接:http://vjudge.net/contest/132239#problem/C
欧拉回路公式:
1、图是连通的。
2、所有点的度都是偶数。
tip: 网上有很多解法,几乎都是一样,由于UVa的数据都是连通的,几乎都没有判连通。
题目链接:http://vjudge.net/contest/132239#problem/C
欧拉回路公式:
1、图是连通的。
2、所有点的度都是偶数。
tip: 网上有很多解法,几乎都是一样,由于UVa的数据都是连通的,几乎都没有判连通。
#include <stdio.h> #include <string.h> #include <bits/stdc++.h> using namespace std; #define N 55 #define MAX 1010 int g ,vis ; int d ; int n; void euler(int u) { int v; for(v=1; v<=50; v++) if(g[u][v]) { g[u][v]--; g[v][u]--; euler(v); printf("%d %d\n",v,u); } } void dfs(int k) { vis[k] = true; for(int i=1; i<=50; i++) { if(g[k][i]) { if(!vis[i]) dfs(i); } } } int main() { //freopen("input.txt","r",stdin); int t,T; int i; int u,v; scanf("%d",&T); vector<int> Q; for(t=1 ; t<=T; t++) { memset(g,0,sizeof(g)); memset(vis,0,sizeof(vis)); memset(d,0,sizeof(d)); Q.clear(); scanf("%d",&n); for(i=1 ; i<=n; i++) { scanf("%d%d",&u,&v); d[u]++; d[v]++; g[u][v]++; g[v][u]++; Q.push_back(u); Q.push_back(v); } printf("Case #%d\n",t); dfs(Q[0]); bool flag = true; for(i=0; i<Q.size(); i++) { if(!vis[Q[i]]) { flag = false; break; } } if(!flag) { printf("some beads may be lost\n"); if(t!=T) printf("\n"); } //图是连通的,要判断所有点的度是否有为偶数 else { for(i=1 ; i<=50; i++) if(d[i]%2) break; if(i<=50) printf("some beads may be lost\n"); else //图连通而且所有点的度都为偶数,则是一个欧拉回路,输出路径 for(i=1; i<=50; i++) euler(i); if(t!=T) printf("\n"); } } return 0; }
相关文章推荐
- The Necklace - UVa 10054 欧拉回路
- UVa 10054 The Necklace(欧拉回路)
- uva 10054 The Necklace 欧拉回路
- UVa10054 The Necklace,无向图求欧拉回路
- UVA 10054 The Necklace (无向图的欧拉回路)
- uva10054(递归+欧拉回路)
- UVA10054欧拉回路
- uva 10054 The Necklace 欧拉回路
- 欧拉回路两题 uva 10129 + uva 10054
- uva 10054 The Necklace(欧拉回路)
- (UVa 10054)The Necklace --欧拉回路的判断和输出,DFS
- The Necklace UVA - 10054 题解(欧拉回路,路径输出)
- UVa 10054 项链(欧拉回路)
- UVA - 10054 The Necklace (欧拉回路)
- UVA 10054 无向图的欧拉回路输出路径
- uva 10054 The Necklac(欧拉回路)
- UVA 10054 The Necklace(欧拉回路)
- UVA 10054项链(欧拉回路)
- UVA-10054 The Necklace 欧拉回路
- UVa 10054 项链(欧拉回路)