hdu 1878 欧拉回路
2013-04-22 17:07
267 查看
刚开始一直不明白怎么判断欧拉回路,网上搜了一下,就是判断接入每一个点的度(他们称之为度)是不是偶数,如果全是偶数且图联通,就存在欧拉回路,否则不存在。
至于判断图是不是联通,直接用并查集判断就行。
至于判断图是不是联通,直接用并查集判断就行。
#include<stdio.h> #define N 1005 int mark ,rank ,num ; int n,m; void value() { int i; for(i=0;i<=n;i++) { mark[i]=i; rank[i]=1; num[i]=0; } return ; } int find(int x) { while(x!=mark[x]) x=mark[x]; return x; } void Union(int x,int y) { x=find(x); y=find(y); if(x==y) return ; if(rank[x]>rank[y]) { mark[y]=x; rank[x]+=rank[y]; } else { mark[x]=y; rank[y]+=rank[x]; } return ; } int main() { int i; int x,y; int count1,count2; while(scanf("%d",&n),n) { scanf("%d",&m); value(); while(m--) { scanf("%d%d",&x,&y); num[x]++; num[y]++; Union(x,y); } count1=count2=0; for(i=1;i<=n;i++) { if(mark[i]==i) count1++; if(num[i]%2==0) count2++; } if(count1==1&&count2==n) printf("1\n"); else printf("0\n"); } return 0; }
相关文章推荐
- 欧拉回路定义(HDU - 1878 )
- HDU-1878 欧拉回路
- hdu 1878 欧拉回路
- 【HDU 1878】欧拉回路(并查集)
- HDU 1878 欧拉回路(简单欧拉回路判定)
- HDU 1878 欧拉回路(图论)
- HDU 1878 欧拉回路
- HDU 1878 【欧拉回路】
- HDU 1878 欧拉回路
- hdu 1878 欧拉回路【并查集入门】
- hdu 1878 欧拉回路
- hdu 1878 欧拉回路(水题,判断欧拉回路)
- hdu 1878 欧拉回路
- 浙大复试 HDU 1878 欧拉回路
- HDU 1878 欧拉回路 图论
- 杭电hdu 1878 欧拉回路 无向图
- HDU 1878-欧拉回路
- Hdu 1878 欧拉回路
- HDU 1878 欧拉回路
- hdu 1878 欧拉回路