【算法青年】汽车旅行问题

本文介绍了如何利用贪心策略解决汽车旅行问题,通过Prim算法和Dijkstra算法的变体,找到从城市s到城市t的路径,使得路径上最大边的长度最小,从而确定最小油箱容量。文章详细探讨了算法实现过程中的图表示、decrease-key操作以及确定最小油箱的策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

又是算法OJ的DDL,每次OJ遇到问题都在网上找好久,决定从这一次开始,把每次OJ的题目都整理一下,一是给自己养成一个归纳整理的好习惯,二是希望能帮下一届的学弟学妹排雷

先来看题

问题 B: 汽车旅行问题

时间限制: 1 Sec   内存限制: 18 MB
提交  状态  算法问答 

题目描述

经过一通计算,小雷同学最后还是乖乖听叔叔的话飞到了北京,开始了他快乐的旅程。在北京玩了一番之后,他决定租车去东三省进行自驾游,再回到北京飞去其他的城市。

小雷从爸爸手上得到了一份东三省的地图,上面标有若干城市,城市之间由高速公路连接。他按照老规矩把这份地图上的城市和公路用无向图进行了建模,每个城市为图中的一个顶点v,而每条公路e则是图中连接两个顶点的一条边,这样这份地图就变成了无向图G=(V,E)的样子。根据地图上的信息,每一条边e的长度le是已知的。

不幸的是,小雷发现在他的目的区域中,只有每座城市建有加油站,而高速公路上却没有,所以他在租车的时候,需要好好考虑租用车型的油箱容量。那么现在的问题是,油箱容量越大的车租金越贵,小雷希望能尽可能的省钱,但是若他想从某个城市s开车到另一个城市t,他需要确保路径上每段路e的长度le都小于等于油箱的容量L(在这里,为了方便比较,油箱容量L的单位用装满油箱能跑的公里数表示)。

同学们,你们能再帮小雷一次,替他算出要在地图上的城市之间进行自驾旅游,怎样才能用最少的钱租到最合适的车,而又不至于在两个城市间行驶时因为没油而无法继续旅行嘛?(即算出所需租用车的最小油箱容量L)。

 

输入

第一行依次是城市个数n,以及s和t的编号。城市编号从0开始。

下面每一行第一个数是高速公路长度,长度非负。后两个数是高速公路连接的城市编号。

s和t是存在通路的。

输出

输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值