uva 10054(欧拉回路+并查集)
来源:互联网 发布:ear cuff淘宝 编辑:程序博客网 时间:2024/06/07 13:03
题解:明显的欧拉回路,先用并查集判断是否连通,然后计算每个结点的度数是否是偶数,最后递归将欧拉回路压栈,最后输出。
#include <stdio.h>#include <string.h>const int N = 55;int G[N][N], du[N], flag;void init() { memset(du, 0, sizeof(du)); memset(G, 0, sizeof(G)); flag = 0;}void judge1() { int i; for (i = 0; i <= 50; i++) if (du[i] % 2 != 0) { flag = 1; }}void euler(int u) { for (int v = 0; v <= 50; v++) { if (G[u][v]) { G[u][v]--; G[v][u]--; euler(v); printf("%d %d\n", v, u); } }}int main() { int t, n, v1, v2, cases = 1, i; scanf("%d", &t); while (t--) { init(); scanf("%d", &n); for (i = 0; i < n; i++) { scanf("%d%d", &v1, &v2); G[v2][v1]++; G[v1][v2]++; du[v1]++; du[v2]++; } judge1(); printf("Case #%d\n", cases++); if (flag) printf("some beads may be lost\n"); else { for (i = 0; i <= 50; i++) if (du[i]) break; euler(i); } if (t) printf("\n"); } return 0;}
0 0
- uva 10054(欧拉回路+并查集)
- UVA - 10596 - Morning Walk (欧拉回路!并查集判断回路)
- hdu1878欧拉回路【并查集】
- HDU1116(欧拉回路+并查集)
- 并查集+欧拉回路
- hdu3018并查集+欧拉回路
- 欧拉回路-并查集
- 并查集与欧拉回路
- UVa10129(欧拉回路,并查集)
- 欧拉路径,欧拉回路,并查集
- UVA The Necklace (并查集判断欧拉回路)
- Uva 10596 - Morning Walk 欧拉回路基础水题 并查集实现【uva数据修改,代码已更新】
- hdu 1878 欧拉回路 欧拉回路+并查集
- HDU 1878 欧拉回路 (并查集+欧拉回路)
- HDU 1878 欧拉回路(并查集+欧拉回路)
- hdoj1878欧拉回路(并查集+欧拉回路)
- 【杭电oj】1878 - 欧拉回路(欧拉回路,并查集)
- 杭电Problem1878 欧拉回路 并查集 + 欧拉回路
- OC (三)
- C++ 二分查找 求最近的值
- zigzag数组
- numpy 画直方图
- poj 1094
- uva 10054(欧拉回路+并查集)
- Something about Vim
- linux内核中Kconfig及如何加自己的驱动
- POJ 1035 Spell checker
- maven jetty plug
- hdu 4888 Redraw Beautiful Drawings(最大流)
- cocos2dx中用触摸机制实现在一个方向上拖动精灵。
- hdoj 1042 N!
- mp2 解码器kjmp输出32bit