洛谷NOIP刷題 P1016 旅行家的預算

2021-09-11 08:22:57 字數 1045 閱讀 7537

題目描述

乙個旅行家想駕駛汽車以最少的費用從乙個城市到另乙個城市(假設出發時油箱是空的)。給定兩個城市之間的距離d1d1、汽車油箱的容量cc(以公升為單位)、每公升汽油能行駛的距離d2d2、出發點每公升汽油**pp和沿途油站數nn(nn可以為零),油站ii離出發點的距離didi、每公升汽油**pipi(i=1,2,…,ni=1,2,…,n)。計算結果四捨五入至小數點後兩位。如果無法到達目的地,則輸出「no solution」。

輸入輸出格式

輸入格式:

第一行,d1d1,cc,d2d2,pp,nn。

接下來有nn行。

第i+1i+1行,兩個數字,油站i離出發點的距離didi和每公升汽油**pipi。

輸出格式:

所需最小費用,計算結果四捨五入至小數點後兩位。如果無法到達目的地,則輸出「no solution」。

輸入輸出樣例

輸入樣例#1:

275.6 11.9 27.4 2.8 2

102.0 2.9

220.0 2.2

輸出樣例#1:

26.95

說明n \le 6n≤6,其餘數字 \le 500≤500

#include#include#include#include#include#include#include#include#include#define inf 0x3f3f3f3f

typedef long long ll;

using namespace std;

double dp[10][50005],len,c,v,w[10],s[10],ans,cs[10],m[10];

int n,fl,l=1,r;

int main()

s[n+1]=len;

for(int i=0;i<=n;i++)

if(l>r||w[i]<=cs[l])

else

}if(fl) cout<<"no solution"

return 0;

}

洛谷 P1016 旅行家的預算

原題鏈結 這是一道比較簡單的貪心題目。這個題的解法如下 如果把起點定為第0個加油站,終點定為第n 1個加油站。從第0個點開始,驅車至能到達的最遠的那個加油站,在第0個點把油加滿。這其中會遇到三種情況 1.中間有乙個比出發點油價更便宜的加油站。2.中間的油價都比出發點高。3.不能到達下乙個加油站。很容...

洛谷P1016 旅行家的預算 貪心

這道題就是貪心 1 在第乙個加油站的時候,如果在加滿油能夠到達的加油站中有乙個加油站的錢比自己的少 其實等於也行 那就 加足夠到那個車站的油,直接去那個車站 2 這些車站中所有都比自己大,那就找乙個其中錢最少的車站 在當前車站加滿油,然後直接開到那個車站 3 然後到達車站時就不斷重複以上的處理方法 ...

洛谷 P1016 旅行家的預算(貪心 模擬)

貪心的策略是 從起點 其中乙個加油站出發,所能到達的所有加油站中,如果有比當前加油站 便宜的,則從當前加油站加定量油正好跑到那個最近的 便宜的加油站 如果都比當前加油站貴,則加滿油並跑到 最低的乙個。再注意一些邊界條件的處理。ac 1 include2 include3 using namespac...