poj 2253 Frogger 1797 Heavy Transportation

来源:互联网 发布:乐乎记录生活 编辑:程序博客网 时间:2024/06/05 23:05
//前言:第一次写文章,感觉如果今天不写完,那以后也别想再补这两题;


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。(对该算法还没概念的先去百一下~)


poj 1797:Heavy Transportation
题意:

把货物从起点运到终点,由于每条路径都有限制重量,问:要把货物运到终点,那么运输货物一次,货物可达的最大的重量是多少?


这题跟上题刚好是反了反,上题是问大中的小,而这题是问小中的大;


要求:找出每条路径中相邻两个点中最小的重量限制,找出它们之间的最大值;


dis[i]的定义:dis[i]表示从起点到i点的路径方案中 两个点之间的重量限制的最小值。


判定条件:dis[j]>min(dis[i],d[i][j]),成立的话dis[j]=min(dis[i],d[i][j]);


其余的也就继续套用最短路的算法Dijkstra。


(代码就不贴了,个人感觉自己还写得不成熟,有的过于累赘,在这里只是提了一些思路,希望对大家都有帮助~)

原创粉丝点击