标签:des style blog http color os io java ar
1 2 1 2 3 2 3 1 6 1 2 5 2 3 3 3 1 4 0 0 1 2 1 2 3 2 1 3 3 2 4 4 0 0 0 0
1 2 3 5 4 6 Round trip does not exist.
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cmath> 5 #include <algorithm> 6 #include <climits> 7 #include <vector> 8 #include <queue> 9 #include <cstdlib> 10 #include <string> 11 #include <set> 12 #include <stack> 13 #define LL long long 14 #define pii pair<int,int> 15 #define INF 0x3f3f3f3f 16 using namespace std; 17 const int maxn = 2010; 18 int g[50][maxn],degree[50],stk[maxn],tp,n,m; 19 bool vis[maxn]; 20 void dfs(int u) { 21 for(int i = 1; i <= n; i++) { 22 if(!vis[i] && g[u][i]) { 23 vis[i] = true; 24 dfs(g[u][i]); 25 stk[tp++] = i; 26 } 27 } 28 } 29 int main() { 30 int x,y,z,st,i; 31 while(scanf("%d %d",&x,&y),x||y) { 32 n = m = tp = 0; 33 memset(vis,false,sizeof(vis)); 34 memset(degree,0,sizeof(degree)); 35 memset(g,0,sizeof(g)); 36 st = min(x,y); 37 scanf("%d",&z); 38 n = max(n,z); 39 m = max(m,max(x,y)); 40 g[x][z] = y; 41 g[y][z] = x; 42 degree[x]++; 43 degree[y]++; 44 while(scanf("%d %d",&x,&y),x||y) { 45 scanf("%d",&z); 46 n = max(n,z); 47 m = max(m,max(x,y)); 48 g[x][z] = y; 49 g[y][z] = x; 50 degree[x]++; 51 degree[y]++; 52 } 53 for(i = 1; i <= m; i++) 54 if(degree[i]&1) break; 55 if(i <= m) puts("Round trip does not exist."); 56 else { 57 dfs(st); 58 tp--; 59 printf("%d",stk[tp--]); 60 while(tp >= 0) printf(" %d",stk[tp--]); 61 puts(""); 62 } 63 } 64 return 0; 65 } 66 /* 67 1 2 1 68 2 3 2 69 3 1 6 70 1 2 5 71 2 3 3 72 3 1 4 73 0 0 74 */
标签:des style blog http color os io java ar
原文地址:http://www.cnblogs.com/crackpotisback/p/3964516.html