首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
医院应建的村庄和最远村庄到医院的最短路程
[问答题]
给定n个村庄之间的交通图,顶点表示村庄,边表示村庄之间有道路,边上的权表示道路的长度。现在要从这n个村庄中选择一个村庄建一所医院,在n个可选的方案中,选择其中使得离医院最远的村庄到医院的路程最短的方案建医院。试设计求解该问题的算法,并应用该算法对下图所示的实例进行解答,回答:医院应建的村庄和最远村庄到医院的最短路程。
添加笔记
求解答(3)
邀请回答
收藏(9)
分享
纠错
1个回答
添加回答
0
然201904241550635
该题可用求每对顶点间最短路径的FLOYD算法求解。求出每一顶点(村庄)到其它顶点(村庄)的最短路径。在每个顶点到其它顶点的最短路径中,选出最长的一条。因为有n个顶点,所以有n条, 在这n条最长路径中找出最短一条,它的出发点(村庄)就是医院应建立的村庄。 void Hospital(AdjMatrix w,int n) //在以邻接带权矩阵表示的n个村庄中,求医院建在何处,使离医院最远的村庄到医院的路径最短。 {for (k=1;k<=n;k++) //求任意两顶点间的最短路径 for (i=1;i<=n;i++) for (j=1;j<=n;j++) if (w[i][k]+w[k][j]<w>s) s=w[i][j]; if (s<=m) {m=s; k=i;}//在最长路径中,取最短的一条。m记最长路径,k记出发顶点的下标。 Printf(“医院应建在%d村庄,到医院距离为%d\n”,i,m); }//for }//算法结束 对以上实例模拟的过程略。在A(6) 矩阵中,各行中最大数依次是9,9,6,7,9,9。这几个最大数中最小者为6,故医院应建在第三个村庄中,离医院最远的村庄到医院的距离是6。 </w>
发表于 2020-07-29 12:00:55
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
图
上传者:
城市里的养猫者
难度:
1条回答
9收藏
2775浏览
热门推荐
相关试题
环形数组的连续子数组最大和
动态规划
评论
(1)
过河
动态规划
评论
(1)
一分钟时间用三个词介绍一下自己
通用能力
评论
(1)
请用一个阿拉伯数字和字母形容自己
通用能力
评论
(0)
统计子序列数
动态规划
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题