hdu 1878 欧拉回路 解题报告
来源:互联网 发布:godaddy设置php 编辑:程序博客网 时间:2024/06/10 20:44
欧拉回路
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 11931 Accepted Submission(s): 4400
Problem Description
欧拉回路是指不令笔离开纸面,可画过图中每条边仅一次,且可以回到起点的一条回路。现给定一个图,问是否存在欧拉回路?
Input
测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是节点数N ( 1 < N < 1000 )和边数M;随后的M行对应M条边,每行给出一对正整数,分别是该条边直接连通的两个节点的编号(节点从1到N编号)。当N为0时输入结
束。
束。
Output
每个测试用例的输出占一行,若欧拉回路存在则输出1,否则输出0。
Sample Input
3 31 21 32 33 21 22 30
Sample Output
10
代码:
#include<stdio.h>#include<string.h>#define MAXN 1050int d[MAXN],f[MAXN];int find(int x){ return f[x]==x?x:(f[x]=find(f[x]));}int main(){ int n,m,x,y,i; while (~scanf("%d",&n) && n) { scanf("%d",&m); memset(d,0,sizeof(d)); for (i=1; i<=n; i++) f[i]=i; while (m--) { scanf("%d%d",&x,&y); d[x]++; d[y]++; x=find(x),y=find(y); f[x]=y; } //只能有一个父节点 int sum = 0; for (i=1; i<=n; i++) { if(d[i]%2) break; if(find(i)==i)sum++; if(sum>1) break; } if (i<=n) printf("0\n"); else printf("1\n"); } return 0;}
0 0
- hdu 1878 欧拉回路 解题报告
- HDU1116 欧拉回路 解题报告
- POJ1300 欧拉回路 解题报告
- hdu1116--解题报告--初步了解欧拉回路
- UVa 10129 Play on Words 欧拉回路 解题报告
- poj 2337 Catenyms 欧拉回路+dfs 解题报告
- HDU 1878 欧拉回路
- hdu 1878 欧拉回路
- 【欧拉回路】hdu 1878
- hdu 1878 欧拉回路
- HDU 1878 欧拉回路
- hdu 1878 欧拉回路
- hdu 1878 欧拉回路
- hdu 1878 欧拉回路
- HDU-1878-欧拉回路
- Hdu 1878 欧拉回路
- hdu 1878 欧拉回路
- hdu 1878 欧拉回路
- 在eclipse中引入java程序的方法
- python:mysql查询
- 20160410模拟
- 程序员三年一跳,为什么越跳越好?
- Android_View和viewgroup测绘顺序
- hdu 1878 欧拉回路 解题报告
- 九度OJ练习笔记
- 如何降低自己的gcc版本_caffe_matlabconfigure
- hadoop生态系统学习之路(九)MR将结果输出到数据库(DB)
- VB.net机房收费系统小问题之变量赋值前被使用
- 从零开始学_JavaScript_系列(七)——jquery(复选框及互斥、div块、修改css、标签数组、ajax连续加载)
- Integer缓存总结
- kettle中MySQL批量加载
- KNN算法,KD树实现