UVa 10596
来源:互联网 发布:淘宝开店新规则 编辑:程序博客网 时间:2024/05/17 00:55
判断无向图中是否有欧拉回路
并查集判断是否连通,每个点的度数必须为偶数个
#include<stdio.h>#include<string.h>#include<stdlib.h>int G[201][201];int num[201];int parent[201];int degree[201];int nodesn;int nodes;int ini(){ for(int i=0;i<201;++i) { for(int j=0;j<201;++j) { G[i][j]=0; } degree[i]=0; num[i]=1; parent[i]=i; // nodes=0; nodesn=0; }}int is_balanced(){ for(int i=0;i<nodes;++i) { if(degree[i]%2) return 0; } return 1;}int is_connected(){ for(int i=0;i<nodes;++i) { if(num[i]==0) nodesn++; } if(nodesn==nodes-1) { return 1; } return 0;}int find(int x){ if(parent[x]==x) return x; else { return parent[x]=find(parent[x]); }}void merge(int a,int b){ int t1=find(a); int t2=find(b); if(t1!=t2) { num[t1]+=num[t2]; num[t2]=0; parent[t2]=t1; }}int main(){ int R; int a,b; while(scanf("%d%d",&nodes,&R)!=EOF) { ini(); // printf("nodes %d\n",nodes); for(int i=0;i<R;++i) { scanf("%d%d",&a,&b); G[a][b]++; G[b][a]++; degree[a]++; degree[b]++; if(G[a][b]) { merge(a,b); } } // printf("\nconnect "); /*for(int i=0;i<nodes;++i) { printf("%d ",num[i]); }*/ // printf("\n"); if(is_connected()&&is_balanced()) { printf("Possible\n"); } else { printf("Not Possible\n"); } } return 0;}
- 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 清晨漫步
- UVa 10596 - Morning Walk
- UVA 10596 Morning Walk
- uva 10596 - Morning Walk
- UVA 10596 Morning Walk
- uva 10596Morning Walk
- UVA 10596 (13.07.11)
- UVa 10596: Morning Walk
- uva 10596 - Morning Walk
- Servlet(二)
- 根据前序和中序遍历构造二叉树
- 在爱与被爱的选择里,我选择了爱:伤感日志
- [test]select之having练习
- 云计算之 PaaS详解
- UVa 10596
- hdu - 4320 - Arcane Numbers 1 - 想法题
- 两年的周总结-16.8万字
- HADOOP的学习笔记 (第三期) eclipse 配置hadoop开发环境
- 什么是渲染
- 回忆借你的曾经—致我们终将逝去的青春_伤感日志
- vim快捷键
- 转载加自己的见解getch(),getche(),getchar(),gets(),scanf()的区别,综合很多博客的文章。
- [动态规划] LCIS