哥尼斯堡的“七桥问题” (25 分)
7-12 哥尼斯堡的“七桥问题” (25 分)
哥尼斯堡是位于普累格河上的一座城市,它包含两个岛屿及连接它们的七座桥,如下图所示。
可否走过这样的七座桥,而且每桥只走过一次?瑞士数学家欧拉(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
判断是否为欧拉回路的条件:
1.是否全部连通
2.每个点的入度等于出度,每个点的度数为偶数
#include<iostream>
#include<cstring>
#include<vector>
#include<algorithm>
using namespace std;
#define MAXN 1003
int cnt[MAXN];
int pre[MAXN],n,m;
int find(int x)//并查集的查找
{if (pre[x] == x)return x;elsereturn pre[x]=find(pre[x]);
}
void merge(int x,int y)//并查集的合并
{int fx=find(x);int fy=find(y);if (fx!=fy){pre[fy]=fx;}
}
int main()
{scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){pre[i]=i;cnt[i]=0;}int x,y;while (m--){scanf("%d%d",&x,&y);merge(x,y);cnt[x]++;cnt[y]++;//记录点的度数}int count=0,flag=0;for(int i=1;i<=n;i++) {if(pre[i]==i)count++;}if(count==1){//只有一个祖先,图是联通的for(int i=1;i<=n;i++){if(cnt[i]%2){flag=1;break;}}if(flag) printf("0\n");//存在奇数度数,不是欧拉回路else printf("1\n");//是联通的,且每个点的度数是偶数} else printf("0\n");//图压根就不是联通的return 0;
}
哥尼斯堡的“七桥问题” (25 分)相关推荐
- 结构与算法 7-32 哥尼斯堡的“七桥问题” (25 分)
7-32 哥尼斯堡的"七桥问题" (25 分) 哥尼斯堡是位于普累格河上的一座城市,它包含两个岛屿及连接它们的七座桥,如下图所示. 可否走过这样的七座桥,而且每桥只走过一次?瑞士数 ...
- 5-32 哥尼斯堡的“七桥问题” (25分)
5-32 哥尼斯堡的"七桥问题" (25分) 哥尼斯堡是位于普累格河上的一座城市,它包含两个岛屿及连接它们的七座桥,如下图所示. 可否走过这样的七座桥,而且每桥只走过一次?瑞士数学 ...
- 7-32 哥尼斯堡的“七桥问题” (25分)
7-32 哥尼斯堡的"七桥问题" (25分) 数据结构与算法题目集 问题: 哥尼斯堡是位于普累格河上的一座城市,它包含两个岛屿及连接它们的七座桥,如下图所示. 可否走过这样的七座桥 ...
- 7-41 哥尼斯堡的“七桥问题” (25 分)
哥尼斯堡是位于普累格河上的一座城市,它包含两个岛屿及连接它们的七座桥,如下图所示. 可否走过这样的七座桥,而且每桥只走过一次?瑞士数学家欧拉(Leonhard Euler,1707-1783)最终解决 ...
- 哥尼斯堡的“七桥问题” (25 分)【欧拉回路模板题】
立志用最少的代码做最高效的表达 哥尼斯堡是位于普累格河上的一座城市,它包含两个岛屿及连接它们的七座桥,如下图所示. 可否走过这样的七座桥,而且每桥只走过一次?瑞士数学家欧拉(Leonhard Eule ...
- 7-32 哥尼斯堡的“七桥问题” (25 分)(思路+详解+题目分析)两种做法任选其一
一:题目: 哥尼斯堡是位于普累格河上的一座城市,它包含两个岛屿及连接它们的七座桥,如下图所示. 可否走过这样的七座桥,而且每桥只走过一次?瑞士数学家欧拉(Leonhard Euler,1707-178 ...
- 哥尼斯堡的“七桥问题” (25分)
哥尼斯堡是位于普累格河上的一座城市,它包含两个岛屿及连接它们的七座桥,如下图所示. 可否走过这样的七座桥,而且每桥只走过一次?瑞士数学家欧拉(Leonhard Euler,1707-1783)最终解决 ...
- 7-32 哥尼斯堡的“七桥问题” (25 分)
判断欧拉回路是否存在的方法 有向图:图连通,所有的顶点出度=入度. 无向图:图连通,所有顶点都是偶数度. 推荐一篇博文,感觉很好---->欧拉回路基本概念+判断+求解 首先判断图是否联通,如果不 ...
- PTA 7-32 哥尼斯堡的“七桥问题” (25 point(s))
哥尼斯堡是位于普累格河上的一座城市,它包含两个岛屿及连接它们的七座桥,如下图所示. 可否走过这样的七座桥,而且每桥只走过一次?瑞士数学家欧拉(Leonhard Euler,1707-1783)最终解决 ...
- 哥尼斯堡的“七桥问题” (欧拉回路,并查集)
哥尼斯堡的"七桥问题" (25分) 哥尼斯堡是位于普累格河上的一座城市,它包含两个岛屿及连接它们的七座桥,如下图所示. 可否走过这样的七座桥,而且每桥只走过一次?瑞士数学家欧拉 ...
最新文章
- 记录在Ubuntu14.04上安装ryu中遇到的各种坑
- Java 如何有效地避免OOM:善于利用软引用和弱引用
- nodejs 当前文件路径_NodeJs的几种文件路径
- eclipse 函数折叠展开
- github上的优秀项目和开发环境配置【转http://www.cnblogs.com/2018/archive/2012/11/09/2763119.html】...
- 认识 UML 类关系——依赖、关联、聚合、组合、泛化
- 信息学奥赛一本通 1117:整数去重 | OpenJudge NOI 1.9 13
- java 页面接收参数_详解SpringMVC——接收请求参数和页面传参
- 2021北京网络安全大会议程及直播观看指南
- 多年软件测试大牛分享成长经历,一个好的软件测试工程师应该做到这些!
- 基于golang的数据结构源码说明
- python最大公约数计算。从键盘接收两个整数_python如何求解两数的最大公约数
- 为什么华为a1路由器网速变慢_路由器需要每天都关吗?看完专家的解释恍然大悟...
- [交叉验证]机器学习中分类器的选择
- 3年后,基于mysql控制vsftp的用户认证机制
- dx 汇编dec_汇编语言——汇编指令
- 微信小程序电子签名实现并识别文字
- 单AP对多终端无线上行带宽下降问题
- windows2003下如何关闭默认共享
- Zebras CodeForces - 950C
热门文章
- 2013腾讯实习生面试经历
- 春节晚报 | 2月1日 星期二 | 快手推出首届“新春招工会”;罗永浩称“不做VR和元宇宙”;戴姆勒正式更名为梅赛德斯-奔驰...
- 润和大数据负责人崔凯参加PostgreSQL中国技术大会
- 一步一图一代码,一定要让你真正彻底明白红黑树
- Eclipse+Java+Swing实现企业人事管理系统
- 利用腾讯云函数搭建免费代理池
- Salt Returners-作业结果数据返回器的使用与定制开发方法
- pandas读取xls文件
- 网站SEO优化的关键词密度怎么布局才算合理
- KGB知识图谱通过知识校验完成企业的风险审核