51nod1288 汽油補給

2021-08-06 02:56:55 字數 766 閱讀 6069

這不是就noip旅行家的預算嗎。只不過這個每公里消耗一公升油,感覺更簡單了些。

貪心,每次找乙個點後面第一油價比它低的點,想辦法到那裡讓油全部用完。找它後面第乙個比它**低的點可以用單調棧處理。

#include

#include

#include

using namespace std;

typedef unsigned long long ll;

const int n = 200000;

ll d[n], p[n], pre[n];

ll t, n, k, top;

ll s[n];

ll dfs(ll l, ll r)

if(d[i] - d[pos] <= t)else

} return ans;

}int main()

for(int i = n - 1; i >= 0; i--)

if(top == 0) pre[i] = n;

else pre[i] = s[top];

s[++top] = i;

}pre[n] = n + 1;

if(ok) puts("-1");

else

printf("%lld\n", dfs(0, n));

return

0;}

51Nod 1288 汽油補給

1288 汽油補給 codility 基準時間限制 1 秒 空間限制 131072 kb 分值 160 難度 6級演算法題 有 n 1 個城市,0是起點n是終點,開車從0 1 2.n,車每走1個單位距離消耗1個單位的汽油,油箱的容量是t。給出每個城市到下乙個城市的距離d,以及當地的油價p,求走完整個...

51nod 1288 汽油補給

有 n 1 個城市,0是起點n是終點,開車從0 1 2.n,車每走1個單位距離消耗1個單位的汽油,油箱的容量是t。給出每個城市到下乙個城市的距離d,以及當地的油價p,求走完整個旅途最少的花費。如果無法從起點到達終點輸出 1。例如d p t 15,最小花費為41,在0加上10個單位的汽油,在1加滿15...

51nod 1288 汽油補給

有 n 1 個城市,0是起點n是終點,開車從0 1 2.n,車每走1個單位距離消耗1個單位的汽油,油箱的容量是t。給出每個城市到下乙個城市的距離d,以及當地的油價p,求走完整個旅途最少的花費。如果無法從起點到達終點輸出 1。例如d p t 15,最小花費為41,在0加上10個單位的汽油,在1加滿15...