uva 10596 Morning Walk
来源:互联网 发布:淘宝贷利息多少 编辑:程序博客网 时间:2024/04/30 21:24
简单的无向图欧拉回路判定
#include <stdio.h>int myset[10001]; //并查集int set_len[10001];int d[10001];void init_set(int n){for(int i=0; i<n; i++){myset[i] = i;set_len[i] = 1;d[i] = 0;}}int get_root(int i){int root;int p, root_temp;root = i;while(myset[root] != root)root = myset[root];p = i;while(1){if(myset[p] == root)break;root_temp = myset[p];myset[p] = root;p = root_temp;}return root;}void merge(int i, int j){int root_a, root_b;root_a = get_root(i);root_b = get_root(j);if(root_a == root_b)return;set_len[root_b] += set_len[root_a];set_len[root_a] = 0;myset[root_a] = root_b;}void func(int m, int n){bool f;if(set_len[get_root(0)] != m) //不是连通图{printf("Not Possible\n");return;}f = true;for(int i=0; i<=m; i++)if(d[i]%2){f = false;break;}if(f)printf("Possible\n");elseprintf("Not Possible\n");}int main(void){int m, n, i;int p1, p2;//freopen("input.dat", "r", stdin);while(scanf("%d %d",&m,&n) != EOF){init_set(n);for(i=1; i<=n; i++){scanf("%d %d", &p1, &p2);d[p1]++; d[p2]++;merge(p1, p2);}func(m, n);}}
- uva 10596 - Morning Walk
- uva 10596 - Morning Walk
- uva 10596 - Morning Walk
- UVa 10596 - Morning Walk
- UVa 10596 - Morning Walk
- UVA 10596 Morning Walk
- uva 10596 - Morning Walk
- UVA 10596 Morning Walk
- uva 10596Morning Walk
- UVa 10596: Morning Walk
- uva 10596 - Morning Walk
- uva 10596 Morning Walk
- Morning Walk UVA 10596
- UVa 10596 - Morning Walk
- UVA 10596 - Morning Walk
- UVA - 10596 Morning Walk
- uva 10596 - Morning Walk
- UVA - 10596 Morning Walk
- day13
- day14
- day15
- day16
- day17
- uva 10596 Morning Walk
- ubuntu下CRF++ JAVA版本的配置
- Socket通信总结(附C++实现)
- day18
- NSAttributedString使用介绍
- TCP/IP,http,socket,长连接,短连接——小结。
- [有源码]ViewPager+Fragment+RadioButton替代TabActivity
- Mysql启动错误:“InnoDB: Error: unable to create temporary file”的解决方法
- poj 1185 炮兵阵地 状态压缩dp