贪心算法:PTA A1033 To Fill or Not to Fill 的思考逻辑

本文探讨了使用贪心算法解决PTA中A1033问题的思考逻辑。关键在于考虑每个加油站的价格和能否到达下一个加油站,避免一次性加满油。在已排序的加油站列表中,通过比较当前和下一个加油站的价格,决定是否加油,并确保油量足以到达下一个站。若加满油仍无法抵达,表明无法继续行驶,应打印退出。
摘要由CSDN通过智能技术生成

核心逻辑

之所以能够贪心的前提,是不同的加油站有不同的价格,所以想要实现整体最优(最便宜的总价格),那么就不能只看到眼下的,一次性加满,不够再补加。(这样就太狂野粗放了)。
所以,要实现贪心,首先就是要往后多考虑一步
因为题目假设的初始条件是初始油箱未空,所以如果不存在距离为0的加油站,直接打印结束。
如果有距离为0,那就可以考虑下一个加油站了(前提是已经按照距离从小到大排序。)
在考虑下一个加油站时考虑下面这几个因素:

  • 值不值得加,即下一个加油站的价格是否更低?
  • 能不能加,即,加满油箱后能不能到达?
  • 每一个当下的加油站和下一个加油站之间都如此考虑。(所以可用while循环)

然后,考虑跑一半,没有油,也没有加油站了,这时候就是需要打印退出了。
产生这个结果的前提,加满油了,也跑不到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值