案例6-1.3 哥尼斯堡的“七桥问题”
题目
可否走过这样的七座桥,而且每桥只走过一次?瑞士数学家欧拉(Leonhard Euler,1707—1783)最终解决了这个问题,并由此创立了拓扑学。这个问题如今可以描述为判断欧拉回路是否存在的问题。欧拉回路是指不令笔离开纸面,可画过图中每条边仅一次,且可以回到起点的一条回路。现给定一个无向图,问是否存在欧拉回路?
代码
/*本题代码用于解决,PTA上一题,哥尼斯堡"七桥"问题(寻找欧拉回路).采用算法:并查集.欧拉回路的计算方法(途中各个定点相互连通,且所有定点的度为偶数)
*/
#include<stdio.h>
#include<stdlib.h>
#define N 1000
int find(int x);
void merge(int x,int y);//采用并查集int degree[N],fa[N];void main(){int i,n,x,j;int vi,vj;int count=0,cn=0;scanf("%d",&n);scanf("%d",&x);
//fa[]初始化for(i=1;i<=n;i++)fa[i]=i;
//degree[]初始化for(i=1;i<=n;i++)degree[i]=0;
//图输入边while( (x--) >0 ){scanf("%d",&vi);scanf("%d",&vj);degree[vi]++;degree[vj]++;merge(vi,vj);}for(i=1;i<=n;i++)if(degree[i]%2!=0)cn++;for(i=1;i<=n;i++){if(fa[i]==i)count++;}if(count>1||cn>0){printf("0 \n");}elseprintf("1 \n");system("pause");
}int find(int x){if(fa[x]==x)return x;elsereturn fa[x]=find(fa[x]);
}void merge(int x,int y){int tempx,tempy;tempx=fa[x];tempy=fa[y];fa[tempx]=tempy;
}
并查集概述
核心代码
int find(int x){if(fa[x]==x)return x;elsereturn fa[x]=find(fa[x]);
}void merge(int x,int y){int tempx,tempy;tempx=fa[x];tempy=fa[y];fa[tempx]=tempy;
}
讲解连接
https://zhuanlan.zhihu.com/p/93647900/
案例6-1.3 哥尼斯堡的“七桥问题”相关推荐
- 哥尼斯堡的“七桥问题” (欧拉回路,并查集)
哥尼斯堡的"七桥问题" (25分) 哥尼斯堡是位于普累格河上的一座城市,它包含两个岛屿及连接它们的七座桥,如下图所示. 可否走过这样的七座桥,而且每桥只走过一次?瑞士数学家欧拉 ...
- 结构与算法 7-32 哥尼斯堡的“七桥问题” (25 分)
7-32 哥尼斯堡的"七桥问题" (25 分) 哥尼斯堡是位于普累格河上的一座城市,它包含两个岛屿及连接它们的七座桥,如下图所示. 可否走过这样的七座桥,而且每桥只走过一次?瑞士数 ...
- 7-41 哥尼斯堡的“七桥问题” (25 分)
哥尼斯堡是位于普累格河上的一座城市,它包含两个岛屿及连接它们的七座桥,如下图所示. 可否走过这样的七座桥,而且每桥只走过一次?瑞士数学家欧拉(Leonhard Euler,1707-1783)最终解决 ...
- 7-32 哥尼斯堡的“七桥问题” (欧拉回路)(PAT算法题目集)
7-32 哥尼斯堡的"七桥问题" 分数 25 作者 DS课程组 单位 浙江大学 哥尼斯堡是位于普累格河上的一座城市,它包含两个岛屿及连接它们的七座桥,如下图所示. 可否走过这样的七 ...
- 5-32 哥尼斯堡的“七桥问题” (25分)
5-32 哥尼斯堡的"七桥问题" (25分) 哥尼斯堡是位于普累格河上的一座城市,它包含两个岛屿及连接它们的七座桥,如下图所示. 可否走过这样的七座桥,而且每桥只走过一次?瑞士数学 ...
- pta 哥尼斯堡的“七桥问题”
7-14 哥尼斯堡的"七桥问题"(25 分) 哥尼斯堡是位于普累格河上的一座城市,它包含两个岛屿及连接它们的七座桥,如下图所示. 可否走过这样的七座桥,而且每桥只走过一次?瑞士数学 ...
- 7-12 哥尼斯堡的“七桥问题” (25 分)(并查集)
7-12 哥尼斯堡的"七桥问题" (25 分) 哥尼斯堡是位于普累格河上的一座城市,它包含两个岛屿及连接它们的七座桥,如下图所示. 可否走过这样的七座桥,而且每桥只走过一次?瑞士数 ...
- 7-32 哥尼斯堡的“七桥问题” (25分)
7-32 哥尼斯堡的"七桥问题" (25分) 数据结构与算法题目集 问题: 哥尼斯堡是位于普累格河上的一座城市,它包含两个岛屿及连接它们的七座桥,如下图所示. 可否走过这样的七座桥 ...
- PTA——哥尼斯堡的“七桥问题(出现运行超时?不妨进来看看)
哥尼斯堡的"七桥问题 题目 答案 总结 题目 答案 #include<iostream> #include<vector> #include<cstring&g ...
最新文章
- 7000 界面语言不升级_仅限今日!手把手教你C++图形界面开发|附完整代码,海量干货!...
- 迷宫问题最短捷径c语言深搜,迷宫问题 C语言实现(深搜)
- python 调用 tensorflow.dll_解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题...
- mybatis表关联彻底理解
- MFC的SendMessage函数详解
- Android开发环境(IDE)
- 面试题 02.02. 返回倒数第 k 个节点
- matlab vec2ind,MATLAB函数ind2vec的作用
- c语言中return,和exit的区别
- Black Hat USA 2020 大会主议题大盘点(上)
- word文档分节后 如何删除某一节的页码
- js标准时间转换为时间戳
- jquery ajax 参数放到 request playload 中
- 基于C++实现(控制台+界面)通讯录管理系统【100010012】
- 实例比较单精度浮点型,双精度浮点型运算结果精度
- chalk.js(node终端样式库)
- vad算法matlab,语音信号的端点检测的matlab代码(子带谱熵法法)
- CSDN 还是一个不错的技术社区
- VS2013 ocx去除安全警告
- 沁恒CH32F103C8T6(二): Linux PlatformIO环境配置, 示例运行和烧录
热门文章
- 2020李宏毅学习笔记——15.Recurrent Netural Network 上
- 利用pytho绘制九九口诀表
- Matlab 2014a 安装
- Zookeeper + Centos7 详细安装教程
- 文本标注开源系统Doccano、Label Studio、BRAT比较
- 经典兔子问题(又名斐波那契数列)
- 智能驾驶仿真场景构建技术
- 请编写一个程序,输入一个由小写字母和其他字符构成的序列字符串保存在tt中,统计“a”到“z”26个字母各自出现的次数,并依次保存在pp数组中,并输出pp数组内容。
- html大屏可视化边框怎么弄的,做大屏可视化,你需要知道这几点
- IEEE 754二进制浮点数算术标准