[蓝桥杯][算法训练VIP]旅行家的预算(单调栈+贪心)
生活随笔
收集整理的這篇文章主要介紹了
[蓝桥杯][算法训练VIP]旅行家的预算(单调栈+贪心)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述
一個旅行家想駕駛汽車以最少的費用從一個城市 到另一個城市(假設出發時油箱是空的)。給定兩個城市之間的距離D1、汽車油箱的容量C(以升為單位)、每升汽油能行駛的距離D2、出發點每升汽油價格P 和沿途油站數N(N可以為零),油站i離出發點的距離Di、每升汽油價格Pi(i=1,2,……N)。計算結果四舍五入至小數點后兩位。如果無法到達目的 地,則輸出“No Solution”。
輸入
第一行為4個實數D1、C、D2、P與一個非負整數N;
接下來N行,每行兩個實數Di、Pi。
輸出
如果可以到達目的地,輸出一個實數(四舍五入至小數點后兩位),表示最小費用;否則輸出“No Solution”(不含引號)。
樣例輸入
275.6 11.9 27.4 2.8 2
102.0 2.9
220.0 2.2
樣例輸出
26.95
思路:很明顯的一個貪心題目(ps:不知道dp能不能做)。
對于我們當前的位置,我們很希望可以一下子跑到油價比當前位置便宜的地方。如果不能的話,我們只能把當前油箱裝滿,然后跑到下一個加油站,再重復這個操作。那么怎么找出油價比當前位置便宜的地方呢?利用單調棧來實現這一步驟。然后去執行上面的操作就可以了。
代碼如下:
努力加油a啊,(o)/~
總結
以上是生活随笔為你收集整理的[蓝桥杯][算法训练VIP]旅行家的预算(单调栈+贪心)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux使用重启网卡命令的方法
- 下一篇: 密室逃脱水果迷屋攻略