欧拉回路

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 12749    Accepted Submission(s): 4738
Problem 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
Author
ZJU
Source
浙大计算机研究生复试上机考试-2008年
Recommend
思路:
满足欧拉回路的条件:任何节点的度数是偶数!
AC代码:
#include<cstdio>
#include<string.h>
int a[1100]; //存父节点
int d[1100]; //存度
int n, m,i;
int find(int p)
{while(p!=a[p]){p=a[p];}return a[p];
}void hebing(int x, int y) //合并
{int fx = find(x); //注意点 int fy = find(y);if(fx!=fy)a[fx] = fy;
}
int main()
{while(scanf("%d", &n) != EOF){if(n == 0) break;scanf("%d", &m);memset(d, 0, sizeof(d)); //初始化度为0 for( i = 1; i <= n; i++) //开始自己是自己的根 {a[i] = i;}for( i = 1; i <= m; i++){int x, y;scanf("%d%d", &x, &y);d[x]++;d[y]++;hebing(x, y); //由于边比较多,所以每读入一条边就合并一次 }int root = 0; //最终只有一个根 for(int i = 1; i <= n; i++){if(i == a[i]){root++;}}if(root != 1)    //不是一个回路; {printf("0\n");continue;  }int flag = 1;for(int i = 1; i <= n; i++) //依次检查度 {if(d[i]%2 != 0){flag = 0;break;}}if(flag==1)printf("1\n");elseprintf("0\n");}return 0;
}

杭电-1878 欧拉回路相关推荐

  1. 『杭电1878』欧拉回路

    Problem Description 欧拉回路是指不令笔离开纸面,可画过图中每条边仅一次,且可以回到起点的一条回路.现给定一个图,问是否存在欧拉回路? Input 测试输入包含若干测试用例.每个测试 ...

  2. hdoj杭电问题分类

    杭电上的题虽然多,但是一直苦于找不到问题分类,网页都是英文的,所以平时做题也没怎么看,今天仔细一看,问题分类竟然就在主页....做了那么久的题居然没发现,表示已经狗带..不要笑,不知道有没有像我一样傻 ...

  3. 杭电ACM(HDUOJ)试题分类

    杭电ACM试题分类 第一篇 1001 这个就不用说了吧                      1002 简单的大数                            1003 DP经典问题,最 ...

  4. 杭电acm第2304题答案c语言,【转】杭电ACM试题分类

    注:网上搜的 第一篇 1001 这个就不用说了吧 1002 简单的大数 1003 DP经典问题,最大连续子段和 1004 简单题 1005 找规律(循环点) 1006 感觉有点BT的题,我到现在还没过 ...

  5. 杭电ACM题目类型整理

    版权声明:(╯3╰) 转载请注明: http://blog.csdn.net/bat67 杭电acm题目分类版本1 1002 简单的大数 1003 DP经典问题,最大连续子段和 1004 简单题 10 ...

  6. 2018杭电暑假多校知识点总结(附大一结语)

    大学的第一个年头就这样过去了,在这一年里,有着迷茫也有着奋斗,可惜没有什么汗水.我有不幸,不幸调剂到了软件工程这个陌生的专业,但我却又是幸运的,因为我遇到了一位优秀的学长,在他的指导下才步入了ACM的 ...

  7. 【杭电ACM】1097 A hard puzzle

    [杭电ACM]1097  A hard puzzle http://acm.hdu.edu.cn/showproblem.php?pid=1097 先用int手写了算法结果竟然wrong answer ...

  8. 【ACM】杭电OJ 1106 函数atoi

    函数atoi是把字符串转化成整数的函数,头文件为 #include "stdlib.h" e.g. 运行环境:Dev-C++ 5.11 杭电1106 调用了sort函数,运行的时间 ...

  9. 【ACM】杭电OJ 2037

    题目链接:杭电OJ 2037 先把b[i]进行排序,然后,b[i]与a[i+1]进行比较. #include <iostream> #include <cstdio> #inc ...

最新文章

  1. c 提取引号中间的字符串_Python | 一文看懂Python列表、元组和字符串操作
  2. 一天一个Linux基础命令之复制文件或目录命令cp
  3. 干货 | 云计算时代携程的网络架构变迁
  4. 烂泥:CentOS6.5挂载windows共享文件夹
  5. linux轮询脚本,linux驱动的等待队列(阻塞操作)和轮询(poll),缓冲区笔记
  6. python系统自学_如何系统地自学python
  7. [转]史上最全的后端技术大全,你都了解哪些技术呢?
  8. vim 强制保存只读文件
  9. PHPCMS修改目录
  10. 操作符union/union all、intersect、minus、(not)exist
  11. ib什么意思_科普|听说邻居的孩子去了IB学校,IB具体是什么?
  12. ORACLE执行计划入门
  13. 数据结构-栈的实现之括号匹配检测
  14. 新兴IT企业特斯拉(四)——Model 3
  15. parasolid 原因 效率_SolidWorks、creo、UG哪个更适合机械设计?听听行业大咖怎么说...
  16. 蓝桥杯 18总决赛 A2 方阵阅兵(暴力)
  17. Lucene.Net的简单练习
  18. UnityShader基础案例(三)——外发光(泛光)和内发光
  19. 2017年大数据会是广告市场最后一根救命草吗?
  20. 摩羯座 计算机专业,为什么说摩羯座是一个很“作”的星座?

热门文章

  1. __dict__属性详解
  2. WPF,Silverlight与XAML读书笔记第三十七 - 可视化效果之Brush
  3. 用工具刺探主机通信和用系统ping命令有何区别
  4. c语言123不合法浮点数,c语言程序设计练习.doc
  5. 安全:屏蔽恶意网站 恶意网址库
  6. idea将junit设置模板_IDEA配置JUnit进行单元测试
  7. Mac:option键的一些极客用法
  8. java异常面试_java中异常的面试
  9. android elevation 白色,Android Elevation设置_安卓动态设置elevation_android elevation设置透明度...
  10. 【每日面试】浙江农信5.10面试凉经