7-32 哥尼斯堡的“七桥问题”

分数 25

作者 DS课程组

单位 浙江大学

哥尼斯堡是位于普累格河上的一座城市,它包含两个岛屿及连接它们的七座桥,如下图所示。

可否走过这样的七座桥,而且每桥只走过一次?瑞士数学家欧拉(Leonhard Euler,1707—1783)最终解决了这个问题,并由此创立了拓扑学。

这个问题如今可以描述为判断欧拉回路是否存在的问题。欧拉回路是指不令笔离开纸面,可画过图中每条边仅一次,且可以回到起点的一条回路。现给定一个无向图,问是否存在欧拉回路?

输入格式:

输入第一行给出两个正整数,分别是节点数N (1≤N≤1000)和边数M;随后的M行对应M条边,每行给出一对正整数,分别是该条边直接连通的两个节点的编号(节点从1到N编号)。

输出格式:

若欧拉回路存在则输出1,否则输出0。

输入样例1:

6 10
1 2
2 3
3 1
4 5
5 6
6 4
1 4
1 6
3 4
3 6

输出样例1:

1

输入样例2:

5 8
1 2
1 3
2 3
2 4
2 5
5 3
5 4
3 4

输出样例2:

0

 存在欧拉函数的先决条件是每个顶点的出度和入度之和必须是偶数,且图是联通的。

#include <iostream>
#include <algorithm>
#include <vector>using namespace std;const int maxn = 1010;
int Degree[maxn];
bool hs[maxn];
vector<int> Adj[maxn];int Nv,Ne;void Read()
{cin >> Nv >> Ne;for(int i=0;i<Ne;++i){int u,v;cin >> u >> v;Adj[u].push_back(v);Adj[v].push_back(u);Degree[u]++;Degree[v]++;}
}void dfs(int u)
{hs[u] = 1;for(int i=0;i<Adj[u].size();++i){int v = Adj[u][i];if(hs[v] == 0)dfs(v);}
}bool oula()
{bool exist = true;dfs(1);for(int i=1;i<=Nv;++i)if( (Degree[i] & 1) || (hs[i] == false) ){exist = false;break;}return exist;
}int main()
{Read();if(oula())puts("1");elseputs("0");return 0;
}

7-32 哥尼斯堡的“七桥问题” (欧拉回路)(PAT算法题目集)相关推荐

  1. 哥尼斯堡的“七桥问题” (欧拉回路,并查集)

    哥尼斯堡的"七桥问题"   (25分) 哥尼斯堡是位于普累格河上的一座城市,它包含两个岛屿及连接它们的七座桥,如下图所示. 可否走过这样的七座桥,而且每桥只走过一次?瑞士数学家欧拉 ...

  2. 结构与算法 7-32 哥尼斯堡的“七桥问题” (25 分)

    7-32 哥尼斯堡的"七桥问题" (25 分) 哥尼斯堡是位于普累格河上的一座城市,它包含两个岛屿及连接它们的七座桥,如下图所示. 可否走过这样的七座桥,而且每桥只走过一次?瑞士数 ...

  3. 7-41 哥尼斯堡的“七桥问题” (25 分)

    哥尼斯堡是位于普累格河上的一座城市,它包含两个岛屿及连接它们的七座桥,如下图所示. 可否走过这样的七座桥,而且每桥只走过一次?瑞士数学家欧拉(Leonhard Euler,1707-1783)最终解决 ...

  4. 5-32 哥尼斯堡的“七桥问题” (25分)

    5-32 哥尼斯堡的"七桥问题" (25分) 哥尼斯堡是位于普累格河上的一座城市,它包含两个岛屿及连接它们的七座桥,如下图所示. 可否走过这样的七座桥,而且每桥只走过一次?瑞士数学 ...

  5. pta 哥尼斯堡的“七桥问题”

    7-14 哥尼斯堡的"七桥问题"(25 分) 哥尼斯堡是位于普累格河上的一座城市,它包含两个岛屿及连接它们的七座桥,如下图所示. 可否走过这样的七座桥,而且每桥只走过一次?瑞士数学 ...

  6. 7-12 哥尼斯堡的“七桥问题” (25 分)(并查集)

    7-12 哥尼斯堡的"七桥问题" (25 分) 哥尼斯堡是位于普累格河上的一座城市,它包含两个岛屿及连接它们的七座桥,如下图所示. 可否走过这样的七座桥,而且每桥只走过一次?瑞士数 ...

  7. 7-32 哥尼斯堡的“七桥问题” (25分)

    7-32 哥尼斯堡的"七桥问题" (25分) 数据结构与算法题目集 问题: 哥尼斯堡是位于普累格河上的一座城市,它包含两个岛屿及连接它们的七座桥,如下图所示. 可否走过这样的七座桥 ...

  8. PTA——哥尼斯堡的“七桥问题(出现运行超时?不妨进来看看)

    哥尼斯堡的"七桥问题 题目 答案 总结 题目 答案 #include<iostream> #include<vector> #include<cstring&g ...

  9. 哥尼斯堡的“七桥问题” (25 分)【欧拉回路模板题】

    立志用最少的代码做最高效的表达 哥尼斯堡是位于普累格河上的一座城市,它包含两个岛屿及连接它们的七座桥,如下图所示. 可否走过这样的七座桥,而且每桥只走过一次?瑞士数学家欧拉(Leonhard Eule ...

最新文章

  1. Not injecting HSTS header since it did not match the requestMatcher HSTS设置问题解决
  2. __attribute__ ((packed))
  3. springboot 按钮权限验证_springboot学习之权限系统登录验证SpringSecurity
  4. 基于双TMS320C6678+双XC6VSX315T的6U VPX高速数据处理平台
  5. Java:希望每天叫醒你的不是闹钟而是梦想!
  6. 【Python基础】学习Python 一定要吃透这 5 个内置函数
  7. POJ2352 stars(树状数组)
  8. 剑指offer之11-15题解
  9. java 继承 冒号_java继承(extends)简单介绍
  10. Netty工作笔记0020---Selectionkey在NIO体系
  11. 怎么在CAD编辑工具中绘制多边形线
  12. lambda函数 java_使用 Java 构建 Lambda 函数 - AWS Lambda
  13. semaphore的几种用法
  14. 【视频】CCNA——小凡模拟器的简单介绍和使用
  15. win10右键卡顿原因_右键菜单反应慢?win10系统解决右键菜单卡顿方法
  16. 8. 数仓开发之 DIM 层
  17. c++调用opencv实现图片叠加以及添加水印效果
  18. 实现动画切换渐进渐出效果
  19. HAL库教程6:串口数据接收
  20. 【个人积累】波束形成和DOA估计概念辨析

热门文章

  1. win10计算机启动慢,如何解决win10系统启动缓慢的问题
  2. 计算机主板是cpu吗,主板和cpu是一起的吗
  3. pip设置默认为清华镜像
  4. 百度云不限速下载(官方渠道,无风险)
  5. Java面试笔试经验技巧总结
  6. 计算机系统的图像编码方式,彩色图像编码方案
  7. 顺序表的建立、查找、插入、删除
  8. Mysql5.1大表分区效率测试
  9. 新手前端微信小程序img图片无法显示问题
  10. VMware Workstation Pro 虚拟机搭建