uva 10596(欧拉路)
来源:互联网 发布:三菱fx编程手册 编辑:程序博客网 时间:2024/06/09 16:43
题解:并查集判断是否连通,然后判断是否为欧拉路,是不是所有的结点度数都是偶数,注意R == 0的时候输出NOT
#include <stdio.h>#include <string.h>const int N = 200 + 5;int du[N], flag, n, r, pa[N], vis[N];void init() { memset(du, 0, sizeof(du)); memset(vis, 0, sizeof(vis)); for (int i = 0; i < n; i++) pa[i] = i; flag = 0;}int get_parent(int x) { return pa[x] == x ? x : get_parent(pa[x]);}void Union(int x, int y) { vis[x] = vis[y] = 1; int px = get_parent(x); int py = get_parent(y); if (px != py) pa[px] = pa[py];}void judge() { int num = 0; for (int i = 0; i < n; i++) if (vis[i] && pa[i] == i) num++; if (num > 1) flag = 1;}void judge1() { for (int i = 0; i < n; i++) if (vis[i] && du[i] % 2 != 0) { flag = 1; break; }}int main() { int v1, v2; while (scanf("%d %d", &n, &r) != EOF) { if (r == 0) { printf("Not Possible\n"); continue; } init(); while (r--) { scanf("%d%d", &v1, &v2); du[v1]++; du[v2]++; Union(v1, v2); } judge(); if (flag) printf("Not Possible\n"); else { judge1(); if (flag) printf("Not Possible\n"); else printf("Possible\n"); } } return 0;}
0 0
- uva 10596(欧拉路)
- uva 10596
- UVa 10596
- uva 10596
- uva 10596
- UVA 10596
- UVA 10596 Morning Walk(欧拉路)
- uva 10596 - Morning Walk
- uva 10596 - Morning Walk
- uva 10596 - Morning Walk
- UVa 10596 - Morning Walk
- UVA 10596 清晨漫步
- UVa 10596 - Morning Walk
- UVA 10596 Morning Walk
- uva 10596 - Morning Walk
- UVA 10596 Morning Walk
- uva 10596Morning Walk
- UVA 10596 (13.07.11)
- 将Vim改造为强大的IDE—Vim集成Ctags/Taglist/Cscope/Winmanager/NERDTree/OmniCppComplete
- Java实现字符串中的单词反转
- ORACLE索引介绍和使用
- ThinkPHP函数详解:I方法
- hdu 3432——Wax
- uva 10596(欧拉路)
- FFmpeg发送流媒体的命令(UDP,RTP,RTMP)
- 【uva】12086-Potentiometers
- UVA 264 Count on Canton 找规律
- Helloworld
- 内向真的是缺点吗?
- PHP扩展之Filter详解
- 超越可用性及性能监测的软件分析
- char转wchar 、 wchar 转 char