hdu 1878 欧拉回路
2011-08-05 14:04
204 查看
判断是否存在欧拉回路
存在欧拉回路的条件:
无向图
1) 连通
2) 所有节点的度为偶数
不知道用并查集做是不是本来就比较慢,反正慢了好多
存在欧拉回路的条件:
无向图
1) 连通
2) 所有节点的度为偶数
不知道用并查集做是不是本来就比较慢,反正慢了好多
#include<iostream> using namespace std; int r[1000],f[1000]; int find(int x) { if(x==f[x]) return x; f[x]=find(f[x]); }; void Union(int x,int y) { int a=find(x); int b=find(y); if(a!=b) f[b]=a; return; } void init(int n) { for(int i=0;i<=n;i++) f[i]=i; memset(r,0,sizeof(r)); } int main() { int n,m,a,b; while(cin>>n&&n) { cin>>m; init(n); for(int i=0;i<m;i++) { cin>>a>>b; r[a]++; r[b]++; Union(a,b); } int count=0; for(int i=0;i<=n;i++) { //cout<<r[i]<<endl; if(r[i]&&i==find(i)) { count++; } } if(count!=1) { cout<<0<<endl; continue; } int flag=0; for(int i=0;i<=n;i++) if(r[i]&&r[i]%2!=0) { flag=1;break; } if(!flag) cout<<1<<endl; else cout<<0<<endl; } return 0; }
相关文章推荐
- HDU 1878 欧拉回路(判断欧拉回路)
- Hdu 1878 欧拉回路[判断是否存在欧拉回路]
- HDU - 1878 - 欧拉回路
- hdu 1878 欧拉回路(无向图)
- HDU 1878 欧拉回路 【并查集+欧拉图】
- hdu 1878欧拉回路
- HDU 1878-欧拉回路
- hdu 1878 欧拉回路(简单欧拉回路)
- hdu 1878 欧拉回路
- HDU 1878 欧拉回路
- HDU1878-欧拉回路(入门题+并查集)
- hdu 1878 无向图的欧拉回路
- 【欧拉回路】hdu 1878
- hdu_1878_欧拉回路_并查集
- HDU 1878 无向图的欧拉回路的判断
- 欧拉通路 欧拉回路的判定 Hdu 1878 欧拉回路
- HDU 1878 欧拉回路
- hdu-1878 欧拉回路
- 【HDU 1878 欧拉回路】
- HDU 1878 欧拉回路