UVA - 10054 The Necklace
2016-08-13 23:12
357 查看
题目大意:每个节点有两个颜色,连接时颜色要相同,问能否串成项链。
解题思路:判断欧拉回路。
无向连通图G是欧拉图,当且仅当G不含奇数度结点(G的所有结点度数为偶数)。
记录一下度数,判断全偶然后输出就行。euler 这个输出的时候要逆序注意一下。
解题思路:判断欧拉回路。
无向连通图G是欧拉图,当且仅当G不含奇数度结点(G的所有结点度数为偶数)。
记录一下度数,判断全偶然后输出就行。euler 这个输出的时候要逆序注意一下。
#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<algorithm> using namespace std; int G[100][100]; int d[100]; int N; void euler(int now) { for (int i = 1; i < 51; i++) if (G[now][i]) { G[now][i]--; G[i][now]--; euler(i); printf("%d %d\n", i, now); } } int main() { int T; scanf("%d", &T); for (int t = 0; t < T; t++) { memset(G, 0, sizeof(G)); memset(d, 0, sizeof(d)); int a, b; scanf("%d", &N); for (int i = 0; i < N; i++) { scanf("%d%d", &a, &b); d[a]++; d[b]++; G[a][b]++; G[b][a]++; } if (t) printf("\n"); printf("Case #%d\n", t+1); int i; for (i = 1; i < 51; i++) if (d[i] % 2) break; if (i != 51) printf("some beads may be lost\n"); else euler(a); } return 0; }
相关文章推荐
- UVa 10054 - The Necklace
- The Necklace UVA10054
- UVA 10054 The Necklace(欧拉路)
- uva 10054 The Necklace(欧拉回路)
- uva 10054 The Necklace
- UVa 10054 (打印欧拉回路) The Necklace
- UVa 10054 - The Necklace
- UVa10054 The Necklace,无向图求欧拉回路
- UVA 10054 The Necklace
- UVA 10054 - The Necklace 欧拉回路
- UVa:10054 The Necklace
- UVa 10054 - The Necklace 欧拉回路
- UVA 10054 The Necklace (dfs欧拉回路)
- UVA 10054 The Necklace(euler)
- UVA 10054 - The Necklace 欧拉回路
- uva 10054 The Necklace 欧拉回路
- UVA 10054 The Necklace(欧拉回路,打印路径)
- The Necklace UVA10054
- UVA10054 The Necklace(欧拉回路)
- The Necklace UVA10054