欧拉回路
来源:互联网 发布:张本天杰 知乎 编辑:程序博客网 时间:2024/06/05 15:58
D
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u
Submit
Status
Practice
HDU 1878
Description
欧拉回路是指不令笔离开纸面,可画过图中每条边仅一次,且可以回到起点的一条回路。现给定一个图,问是否存在欧拉回路?
Input
测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是节点数N ( 1 < N < 1000 )和边数M;随后的M行对应M条边,每行给出一对正整数,分别是该条边直接连通的两个节点的编号(节点从1到N编号)。当N为0时输入结
束。
Output
每个测试用例的输出占一行,若欧拉回路存在则输出1,否则输出0。
Sample Input
3 3
1 2
1 3
2 3
3 2
1 2
2 3
0
Sample Output
1
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u
Submit
Status
Practice
HDU 1878
Description
欧拉回路是指不令笔离开纸面,可画过图中每条边仅一次,且可以回到起点的一条回路。现给定一个图,问是否存在欧拉回路?
Input
测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是节点数N ( 1 < N < 1000 )和边数M;随后的M行对应M条边,每行给出一对正整数,分别是该条边直接连通的两个节点的编号(节点从1到N编号)。当N为0时输入结
束。
Output
每个测试用例的输出占一行,若欧拉回路存在则输出1,否则输出0。
Sample Input
3 3
1 2
1 3
2 3
3 2
1 2
2 3
0
Sample Output
1
0
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int in[1010];int fu[1010];int n,m;int findroot(int x){while(x!=fu[x])x=fu[x];return fu[x];}void Union(int x,int y){int fx=findroot(x);int fy=findroot(y);if(fx!=fy)fu[fx]=fy;}void init(){for(int i=1;i<=n;i++){fu[i]=i;}}int main(){while(scanf("%d",&n),n){init();int cont=0,flag=0;memset(in,0,sizeof(in));scanf("%d",&m);while(m--){int a,b;scanf("%d%d",&a,&b);Union(a,b);in[a]++;//记录入度(欧拉回路要求联通并且每个节点的入度都为偶数) in[b]++;}for(int i=1;i<=n;i++){if(fu[i]==i)cont++;}for(int i=1;i<=n;i++){if(in[i]%2!=0){flag=1;break;}}//if(cont!=1)//flag=1;if(flag==0&&cont==1)printf("1\n");elseprintf("0\n");}return 0;}//DDDDDDDDDDD
0 0
- HDU1878 欧拉回路【欧拉回路】
- 欧拉回路判断
- 欧拉回路 hdu1878
- 欧拉回路
- 欧拉回路
- 欧拉回路
- 欧拉回路,欧拉路
- 欧拉回路
- 欧拉回路
- 欧拉回路
- 欧拉回路
- 欧拉回路
- 欧拉回路
- 欧拉回路
- 图论 欧拉回路
- zju2008欧拉回路
- 欧拉回路
- hdu1878欧拉回路
- java多线程之——ThreadLocal
- HDU 1878 欧拉回路
- JVM——体系结构、生命周期简述
- ruby管理工具rvm
- 汇编实现获取CPU信息
- 欧拉回路
- OSI RM参考模型
- linux下实现cp -r的经验
- iOS-71-关于iOS、Android、服务端对键盘原生表情的处理
- Unity3D 对普通手柄的支持
- 五十道编程小题目 --- 04 正整数分解质因数 java
- 幻方
- BZOJ2091——[Poi2010]The Minima Game
- 计算机中如何表示数字-07IEEE754浮点数标准