欧拉回路

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 15305    Accepted Submission(s): 5855

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年
欧拉回路及欧拉路径定义:
若图G中存在这样一条路径,使得它恰通过G中每条边一次,则称该路径为欧拉路径。若该路径是一个圈,则称为欧拉(Euler)回路。
判断方法:
先用 dfs 或并查集判断图的连通性,再根据顶点度的性质判断。
有向图欧拉回路:所有顶点的入度和出度相等
无向图欧拉回路:所有顶点的度数为偶数
有向图欧拉路径:所有顶点的入度和出度相等或存在两个顶点 a、b ,a 的入度比 b 的入度大 1,a 的出度比 b 小 1
无向图欧拉路径:所以顶点的度的和为偶数且至多有两个顶点的度数为奇数
#include <bits/stdc++.h>
using namespace std;int n, m;
int f[1001], a[1001];int Find(int x){return x = f[x] ? x : (f[x] = Find(f[x]));
}void Merge(int a, int b){int aa = Find(a);int bb = Find(b);if(aa != bb) f[aa] = bb;
}int main(){while(scanf("%d", &n) == 1 && n){scanf("%d", &m);for(int i = 1; i <= n; i++){f[i] = i;}int flag = 1;memset(a, 0, sizeof(a));for(int i = 0; i < m; i++){int x, y;scanf("%d%d", &x, &y);a[x]++, a[y]++;Merge(x, y);}int sum = 0;for(int i = 1; i <= n; i++){if(f[i] == i) sum++;if(a[i]&1) flag = 0;}if(sum != 1) flag = 0;printf("%d\n", flag);}
}

HDU 1878 欧拉回路(入门)相关推荐

  1. Hdu 1878 欧拉回路[判断是否存在欧拉回路]

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1878 题目的意思很简单,就是给你一个无向图..问存在欧拉回路吗?Yes or No.1000个节点.. ...

  2. hdu 1878 欧拉回路

    欧拉回路 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  3. hdu 1116 欧拉回路 并查集 一组字符串能否首尾相连成一个字符串

    主要是欧拉回路的基础知识,用并查集加工处理 注意欧拉回路和并查集的细节判断 不能粘贴复制,一定要理解之后再敲一遍代码,否则浪费更多的时间 #include <stdio.h> #inclu ...

  4. hdoj 1878 欧拉回路

    欧拉回路 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  5. 杭电-1878 欧拉回路

    欧拉回路 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  6. HDU - 1028——母函数入门

    [题目描述] "Well, it seems the first problem is too easy. I will let you know how foolish you are l ...

  7. hdu 1028 母函数入门题

    点击打开链接 题意:给出n n<=120,拆分n的方法数? (1+x^2+x^3+..x^n) *(1+x^2+x^4+x^6+...) *(1+x^3+x^6+...)  第i个表达式代表了数 ...

  8. uoj 117 欧拉回路

    1.判断是否为欧拉存在欧拉回路---裸的判断 欧拉回路就是看一笔能不能把途中所有的边跑完没得重复 对于无向边----建立双向边判断每个点的入度是否为2的倍数   1.1 对于有向边---建立单向边判断 ...

  9. 【转载】图论 500题——主要为hdu/poj/zoj

    转自--http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并 ...

最新文章

  1. java中文件操作的工具类
  2. 【解决】Word 在试图打开文件时遇到错误 请尝试下列方法:* xxx * xxx * xxx
  3. 遇见一款很受用的一个工具,推荐给各位程序员
  4. random and password 在Linux下生成crypt加密密码的方法,shell 生成指定范围随机数与随机字符串...
  5. Java 和 Python 解析动态 key 的 JSON 数据
  6. Android播放器框架分析之AwesomePlaye
  7. UVA 11992 - Fast Matrix Operations(段树)
  8. EPSON EPL-6200 无法网络共享问题
  9. AppStore刷榜那些事儿:猪,也是这么想的
  10. 阿里消息中间件ONS消息乱序问题(二)
  11. NetScaler的cookieinsert和sourceip联合保持机制
  12. qq音乐api android,QQ音乐
  13. oracle表空间权限赋予,Oracle 创建用户、表空间以及授予权限
  14. 暄桐教练日课·21天《灵飞经》报名啦
  15. 缔元信:用户画像技术助推大数据落地
  16. Android 时光轴 -记录生活
  17. docker容器虚拟技术
  18. MMC5603NJ地磁传感器(指南针示例)
  19. 消费互联网、产业互联网、工业互联网、能源互联网的关键区别是什么?智慧城市、智慧园区、智慧交通、智慧水务、智能电网、智慧工厂中都需要的关键技术是什么?
  20. 可使用 git 操作的数据库 dolt

热门文章

  1. 华夏基金X袋鼠云:基金业数字化转型,为什么说用户才是解题答案?
  2. CKA真题 :2019年12月英文原题和分值
  3. 2018年4月份自考总结
  4. 010_StringRedisTemplate
  5. java双语试卷_Java程序设计基础(双语)答案试题题目及答案,期末考试题库,章节测验答案...
  6. 抢单软件开发原理_软件开发原理
  7. 【web】【django】datatable的button扩展实现纯前端下载和copy指定列内容,以及django的HTTPResponse实现下载功能
  8. 教程-mac版本texpad配置中文环境教程
  9. 快速定量,Abbkine 蛋白质定量试剂盒BCA法来了!
  10. P6786 「SWTR-6」GCDs LCMs(数学推导)