欧拉回路

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

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
We have carefully selected several similar problems for you:  1880 1881 1864 1859 1876 

Statistic | Submit | Discuss | Note

欧拉回路问题。

如果要满足欧拉回路有两个条件。1.所有顶点的度数全部是偶数2.必须保证是一个联通图

eg:

6 6

1 2

1 3

2 3

4 5

4 6

5 6

应该输出0。起初写的时候想着不用考虑这么复杂把。。就没有判断是不是一个联通图,结果wa了。。

第二次想着用vector邻接表判断联通图。又忘记初始化数组了

说明做题不能存在侥幸心理,要细心。

#include <stdio.h>
#include <string.h>
#include <vector>
using namespace std;
int vis[1005][1005],visit[1005];
vector<int>map[1005];
void dfs(int pos)
{visit[pos]=1;for(int i=0;i<map[pos].size();i++)if(!visit[map[pos][i]]){dfs(map[pos][i]);}
}
int main()
{int m,n,num[1005];while(scanf("%d",&n)&&n){scanf("%d",&m);memset(num,0,sizeof(num));memset(map,0,sizeof(map));memset(vis,0,sizeof(vis));memset(visit,0,sizeof(visit));for(int i=0;i<m;i++){int x,y;scanf("%d %d",&x,&y);if(!vis[x][y]){vis[x][y]=vis[y][x]=1,num[x]++,num[y]++;map[x].push_back(y);map[y].push_back(x);}}visit[1]=1;dfs(1);int odd=0,sum=0;for(int i=1;i<=n;i++){if(num[i]%2)odd++;if(visit[i]==0)sum++;}if(odd==0&&sum==0)printf("1\n");elseprintf("0\n");}return 0;
}

hdu1878欧拉回路(DFS+欧拉回路)相关推荐

  1. 欧拉回路c语言程序,UOJ117. 欧拉回路【欧拉回路模板题】

    题目大意 就是让你对有向图和无向图分别求欧拉回路 非常的模板,但是由于UOJ上毒瘤群众太多了 所以你必须加上一个小优化 就是每次访问过一个边就把它删掉 有点像Dinic的当前弧优化的感觉 注意是在df ...

  2. UVA-10054 The Necklace (欧拉回路)

    题目大意:有n个珠子,珠子两边的颜色已知,问能否连成一条项链.(两个珠子可以项链当且仅当一个珠子的一边颜色与另一个珠子的另一边颜色相同). 题目分析:欧拉回路.将颜色视作节点,珠子当做边,问题变成了找 ...

  3. 欧拉路径(Euler_Path)和欧拉回路(Euler_Loop)

    一.基本概念 欧拉路径:欧拉路是指从图中任意一个点开始到图中任意一个点结束的路径,并且图中每条边通过的且只通过一次. 欧拉回路:欧拉回路是指起点和终点相同的欧拉路. 二.存在欧拉路的条件 1.无向连通 ...

  4. UVA10129 Play on Words (并查集判连通+欧拉回路)

    题目解析: 输入一些英文单词,根据该单词的首尾字母,判断所有单词能不能连成一串, 类似于成语接龙的意思.同样如果有多个重复的单词时,也必须满足这样的条件才能通过, 否则都是不可能的情况.输入包括若干个 ...

  5. 【算法】欧拉图,欧拉回路,Eular Circuit,随机生成欧拉图,搜索欧拉回路

    背景:图论起源于18世纪,1736年瑞士数学家欧拉(Eular)发表了图论的第一篇论文"哥尼斯堡七桥问题".在当时的哥尼斯堡城有一条横贯全市的普雷格尔河,河中的两个岛与两岸用七座桥 ...

  6. 欧拉回路/路径浅谈(七桥问题,两种算法)

    文章目录 前言 引子 欧拉回路/路径 定义 欧拉路径 欧拉回路 无向图(连通) 欧拉回路-无向 欧拉路径-无向 有向图(连通) 欧拉回路-有向 欧拉路径-有向 注意事项 算法 Fluery算法 Hie ...

  7. 2023-04-05 欧拉回路和欧拉路径

    欧拉回路和欧拉路径 1 欧拉回路 欧拉回路的起源 欧拉回路与哈密尔顿回路的区别 经过所有顶点的回路不一定经过所有边.即哈密尔顿回路不一定是欧拉回路 哈密尔顿回路:从一个点出发,沿着边行走,经过每个顶点 ...

  8. UVa 10596 - Morning Walk, 赤裸裸的欧拉回路

    10596 - Morning Walk 3791 37.43% 1073 89.84% 题目链接: http://uva.onlinejudge.org/index.php?option=com_o ...

  9. P6628-[省选联考 2020 B 卷] 丁香之路【欧拉回路,最小生成树】

    正题 题目链接:https://www.luogu.com.cn/problem/P6628 题目大意 给出nnn个点的一张完全无向图,i∼ji\sim ji∼j的边权是∣i−j∣|i-j|∣i−j∣ ...

最新文章

  1. Python(四)字符串
  2. 【计算机网络】网络安全 : 对称密钥密码体质 ( 数据加密标准 DES | DES 加密过程 | DES 保密性 | 三重 DES 加密 )
  3. mybatis使用注解替代xml配置,动态生成Sql
  4. 爬取《哪吒》豆瓣短评,我得到了什么?
  5. Flink SQL实时数仓开源UI平台
  6. 记2个月来,我在Csdn 掀起的微软面试风暴
  7. 两个可用的ntp服务器地址
  8. linux dstat工具
  9. Linux 进程间通信 无名管道(pipe)
  10. 数据分析之basemap模块
  11. ourdev 学习arm先看看,工具和软件分析
  12. 减少USB 1.1 2.0 端口驱动程序延时_肉鸡啄羽、啄肛、啄蛋等现象如何减少,养殖的朋友们值得看一看...
  13. 哪些IP不会分配给公网使用
  14. Vue3大菠萝pinia笔记
  15. 大数据与云计算技术---(一)hadoop大数据平台
  16. 图的拓扑排序(AOV网络)
  17. Vim、Shell及Linux命令的高效使用
  18. Word2vec词向量工具带你发现不一样的《天龙八部》
  19. 蜂鸟E203图像识别--未完待续
  20. Red Hat Enterprise Linux7.4版本网盘下载

热门文章

  1. html传递汉字参数转换,url中如何传递中文信息呢?
  2. django进阶11 聚合查询 Q
  3. 腾讯云使用phpStudy部署网站(附腾讯云优惠券)
  4. RedisJson和RedisSearch探究(二)
  5. Mac 此账户尚未用于app store_献给mac新手,Mac日常软件APP推荐
  6. 如何在虚拟机中安装winXP
  7. 【数据结构】什么是拓扑排序—关于图的拓扑排序
  8. 波尔原子模型:一段令人愉悦的历史
  9. java游戏应龙女魃转世_应龙与女魃的爱情故事,应龙在黄泉海边等待女魃数千年...
  10. springboot+jsp志愿者岗位报名培训系统javaweb