所有顶点对最短路径问题(图的应用)
医院选址:4个村庄之间的交通图如图1所示,村庄之间的距离为图中各边上的权值。现在要从这4个村庄中选择一个村庄建一所医院,问这所医院应建在哪个村庄,才能使离医院最远的村庄到医院最近。
(PS:具体问题见附件)
#include<iostream>
using namespace std;
int main(){
int h,i,j,minn=10000;
int a[1][4][4]={{{0,7,10000,5},{10000,0,4,10000},{6,6,0,10000},{8,10000,6,0}}},b[100][4][4]={{{0,7,10000,5},{10000,0,4,10000},{6,6,0,10000},{8,10000,6,0}}},c[4]={0};
//b数组使用三维来表示一次次的迭代结果,c数组来表示其他村子到一个村子的最远距离,[0][0]表示A->A,[0][1]表示A->B,其他类推
//以下是Floyd算法求最短路问题
for(h=0;h<100;h++){
for(i=0;i<4;i++){
for(j=0;j<4;j++){
int k=10000;
for(int m=0;m<4;m++){
if(k>b[h][i][m]+a[0][m][j])
k=b[h][i][m]+a[0][m][j];
}
b[h+1][i][j]=k;
}
}
}
//其他村子到每个村子的最远距离
for(j=0;j<4;j++){
for(i=0;i<4;i++){
if(b[9][i][j]>c[j])
c[j]=b[h][i][j];
}
}
//minn表示这些最远距离中的最小值
for(i=0;i<4;i++){
if(c[i]<minn)
minn=c[i];
}
if(minn==c[0])
cout<<"建立在A村"<<endl;
else if(minn==c[1])
cout<<"建立在B村"<<endl;
else if(minn==c[2])
cout<<"建立在C村"<<endl;
else
cout<<"建立在D村"<<endl;
cout<<"此时距离医院最远村子到医院的距离为:"<<minn<<endl;
return 0;
}
转载于:https://blog.51cto.com/983836259/1338193
所有顶点对最短路径问题(图的应用)相关推荐
- Dijkstra算法--有向图的源点到其他顶点的最短路径(连接矩阵、邻接矩阵两种方式)
引子: Dijkstra算法:某个顶点到其他顶点的最短路径. 以下面这个图为例:其中源点是A.关键点:维护一个二维数组,具体见下面: 1.首先,派一名调查员驻扎在A处,在A处,a调查员能够知道与A相连 ...
- 遍历所有点的最短路径python_图遍历算法之最短路径Dijkstra算法
一.最短路径问题(shortest path problem) 最短路径问题是图论研究中一个经典算法问题,旨在寻找图中两节点或单个节点到其他节点之间的最短路径.根据问题的不同,算法的具体形式包括: 确 ...
- 旅游规划pta(无向图求顶点间最短路径)
关于求图的顶点间最短路径问题,基本分为两种算法: Dijkstra算法 Floyd算法 Dijkstra算法是用来求图中某个源点到其他顶点的最短路径的,而Floyd是用来求图中任意两个顶点间的最短路径 ...
- Dijkstra(迪杰斯特拉)算法:求给定顶点到其余各顶点的最短路径
算法特点:该算法使用广度优先搜索解决了赋权有向图或者无向图的单源点最短路径问题.(求给定顶点到其余各点的最短路径问题) 算法思路:Dijkstra算法采用的是一种贪心的策略,声明一个数组dis来保存源 ...
- Dijkstra算法实现求有向图中一顶点到其余各个顶点的最短路径
一.文章说明: C++语言实现: 有向图的存储结构为: 邻接矩阵: 这篇文章的代码是我根据B站UP主懒猫老师所写的,能成功运行,VS里面显示有很多警告.而且还可能存在有未调试出的BUG,请多多指教. ...
- 狄克斯特拉(Dijkstra)算法求一个顶点到其余各个顶点的最短路径
不要自卑,去提升实力 互联网行业谁技术牛谁是爹 如果文章可以带给你能量,那是最好的事!请相信自己 加油o~ 1.狄克斯特拉(Dijkstra)算法 采用狄克斯特拉(Dijkstra)算法可以求带权图( ...
- 利用迪杰斯特拉算法求某一顶点到其余各顶点的最短路径
[迪杰斯特拉算法思想] 设有两个顶点集合S和T,集合S中存放图中已找到最短路径的顶点,集合T存放图中剩余顶点.初始状态下,集合S中只包含源点V0.然后不断从集合T中选取到顶点V0路径长度最短的顶点Vu ...
- 最短路径:Dijkstra算法(求单源最短路径)Floyd算法(求各顶点之间最短路径)
最短路径: 在一个带权图中,顶点V0到图中任意一个顶点Vi的一条路径所经过边上的权值之和,定义为该路径的带权路径长度,把带权路径最短的那条路径称为最短路径. DiskStra算法: 求单源最短路径,即 ...
- 两点顶点之间最短路径问题
两点顶点之间最短路径问题 基于matlab的dijkstra算法 前言 看了很多篇介绍dijkstra算法的博客,没发现对于程序来说很多的地方都有问题. 一.函数代码 代码如下(示例): functi ...
- python画二次函数图像的顶点_几何画板演示顶点式二次函数的图象
几何画板可以很方便地绘制出二次函数的图象.二次函数有一般式和顶点式两种常见形式,不管是什么形式,它们的图象都是相同的.下面就来介绍几何画板二次函数顶点式的演示过程. 几何画板演示顶点式二次函数的图象的 ...
最新文章
- 记《浪潮之巅》-第一版-12.短暂的春秋--与机会失之交臂的公司之一太阳公司(sun microsystems)...
- GBDT(MART) 迭代决策树入门教程 | 简介 .
- 随便贴两个漏洞,如 Apache JServ协议服务
- 多方计算时,每次结果都存在着巨大隐患,如何解决
- db2 表添加字段及注释操作
- 预习 Delphi 2009 中的新功能 - JSON (二) : 如何在 Delphi 中使用 json
- 服务器修改字体,云服务器怎么修改字体
- 激光锡焊在SMA连接器领域的应用
- 你的深度思考能力,是如何一步步被毁掉的?奶嘴战略
- python链家爬虫
- Html 特殊符号 让版权符号更美观
- Swift - 访问通讯录-使用AddressBook.framework和AddressBookUI.framework框架实现
- 划分离散数学定义_《离散数学》学习记录 - 集合论
- Vue+ElementUI+Tabs实现选项卡|标签页|美化标签页面|局部替换样式|好看的标签页|选项卡
- 安规电容(X电容,Y电容)的简单对比介绍
- c#如何实现软件授权后才能使用?
- Blender 画正四面体
- CSS最后一行:控制寡妇和孤儿
- 利用stm32f103c8t6实现对WS2812的控制(从硬件出发)
- 手写简易版 React 来彻底搞懂 fiber 架构
热门文章
- 安装软件包的三种方法、rpm包介绍、rpm工具用法、yum工具用法、yum搭建本地仓库...
- Java并发系列—工具类:CountDownLatch
- http://blog.csdn.net/u011001723/article/details/456210272222
- 《转载》IOS高级开发~开机启动无限后台运行监听进程
- ListView和GridView的一些杂七八杂的内容
- 基于存储过程的可扩展性数据访问框架
- WCF进阶:为每个操作附加身份信息
- 20172304 《程序设计与数据结构》第九周学习总结
- 【330天】跃迁之路——程序员高效学习方法论探索系列(实验阶段88-2018.01.01)...
- brew 安装PHP的配置文件所在位置