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

可否走过这样的七座桥,而且每桥只走过一次?瑞士数学家欧拉(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>
using namespace std;
int f[1010],n[1010];
int find(int a)//并查集,路径压缩
{if(f[a]!=a)return f[a]=find(f[a]);return f[a];
}
int main()
{int a,b,c,d,e,g,flag=1,ans=0;for(c=0;c<1010;c++)f[c]=c;cin>>a>>b;while(b--){cin>>c>>d;e=find(c);g=find(d);if(e!=g)f[e]=g;n[c]++;n[d]++;}for(c=1;c<=a;c++){if(n[c]%2!=0)flag=0;//度数是否为偶数if(f[c]==c)ans++;}if(ans!=1)flag=0;//是否是连通图,只有一个集合就是联通图if(flag)cout<<"1"<<endl;else cout<<"0"<<endl;
}

案例6-1.3 哥尼斯堡的“七桥问题” (并查集)相关推荐

  1. 哥尼斯堡的“七桥问题“(并查集)

    无向图存在欧拉回路的充要条件        一个无向图存在欧拉回路,当且仅当该图所有顶点度数都为偶数,且该图是连通图. 有向图存在欧拉回路的充要条件        一个有向图存在欧拉回路,所有顶点的入 ...

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

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

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

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

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

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

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

    7-32 哥尼斯堡的"七桥问题" 分数 25 作者 DS课程组 单位 浙江大学 哥尼斯堡是位于普累格河上的一座城市,它包含两个岛屿及连接它们的七座桥,如下图所示. 可否走过这样的七 ...

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

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

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

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

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

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

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

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

最新文章

  1. 如何使用Junit进行单元测试
  2. 深度强化学习探索算法最新综述,近200篇文献揭示挑战和未来方向
  3. 2020-07-28
  4. 学习笔记(43):Python实战编程-事件处理简介
  5. linux 配置path
  6. SmartTemplate学习入门一
  7. 10右键闪退到桌面_windows7多用户远程桌面如何设置
  8. python启动http服务_Python通过命令开启http.server服务器的方法
  9. 微课|Python程序设计开发宝典(5.1.2节):函数嵌套定义1
  10. 基于phash和汉明距离找出相似图片
  11. 计算机存储单位以及内存原理
  12. 在CentOS 7上安装Node.js的4种方法(yum安装和源码安装)
  13. 一起撸个简单粗暴的Tv应用主界面的网格布局控件(上)
  14. ArchLinux安装蓝牙驱动
  15. mousetrap.js使用详解
  16. 收费企业邮箱注册后,企邮邮箱如何用foxmail转移邮件?
  17. 最小采样频率计算公式_信号分析基础(五):信号采样与混叠概念
  18. prisma orm_如何使用Node.js和Prisma构建GraphQL服务器
  19. cio时代_成功实现数字时代CIO的6条原则
  20. Cesium深入浅出之图层管理器

热门文章

  1. 帧中继frame-relay
  2. Unity3D学习——(一)让Unity3D中的单位与2D像素对应
  3. 《经济学的三类问题-与十大原理》
  4. 15.OpenWrt-U盘和TF卡存储
  5. 融合通信发展趋势及面临的挑战
  6. 系统故障处理预案 怎么写
  7. 【摘】从Delphi2007成功到Delphi2010总结
  8. 2023年做跨境电商选择马来西亚可以吗?为什么?卖什么好?
  9. arc hdmi 接线图_HDMI ARC功能详解及应用介绍
  10. android 支付吧 漏洞,趋势科技发现支付宝安卓版漏洞