本文主要是介绍poj 2253 Frogger 1797 Heavy Transportation,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
//前言:第一次写文章,感觉如果今天不写完,那以后也别想再补这两题;poj 2253 :Frogger
题意:
一只青蛙想以最轻松的方案跳到另一个青蛙身旁,问这个最轻松的方案中的两块石头的距离最大值是多少?这个距离我们就称为frog distance。(注意:Freddy Frog是在石头1; Fiona Frog是在石头2,而不是石头n)
所谓的最轻松的方案:把通往石头2的所有路径中 两块石头距离最大值找出来,然后取它们中最小的一个。
例如:方案1:1->2;
方案2;1->3->4->2;
方案3:1->3->5->2;
...............
要求:找出以上所有方案中 任意相邻两块石头距离最大的值,然后通过比较找出最小的。
我们把在普通最短路中的 dis[i] 的定义改为:表示从起点到i点的路径方案中 两块石头的距离的最大值。
判定条件:dis[j]>max(dis[i],d[i][j]),成立的话dis[j]=max(dis[i],d[i][j]);
其余的就直接套用最短路的算法Dijkstra。(对该算法还没概念的先去百一下~)
题意:
把货物从起点运到终点,由于每条路径都有限制重量,问:要把货物运到终点,那么运输货物一次,货物可达的最大的重量是多少?
这题跟上题刚好是反了反,上题是问大中的小,而这题是问小中的大;
要求:找出每条路径中相邻两个点中最小的重量限制,找出它们之间的最大值;
dis[i]的定义:dis[i]表示从起点到i点的路径方案中 两个点之间的重量限制的最小值。
判定条件:dis[j]>min(dis[i],d[i][j]),成立的话dis[j]=min(dis[i],d[i][j]);
其余的也就继续套用最短路的算法Dijkstra。
(代码就不贴了,个人感觉自己还写得不成熟,有的过于累赘,在这里只是提了一些思路,希望对大家都有帮助~)
这篇关于poj 2253 Frogger 1797 Heavy Transportation的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!