藍橋杯題目練習 旅行家的預算

2021-10-03 02:03:29 字數 1204 閱讀 5962

旅行家的預算

題目描述

乙個旅行家想駕駛汽車以最少的費用從乙個城市 到另乙個城市(假設出發時油箱是空的)。給定兩個城市之間的距離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

此題可用貪心演算法,

通過找出當前最適合的油站加油得出結果,

我覺得難點主要是需要考慮車的最長行駛距離與油價做權衡,即

即使當前油站的**低於後續油站的**但是由於行駛距離限制因此不得不加油,需要將**較低的油加滿到貴的油站時再做判斷;

#include

#include

#include

using

namespace std;

intmain()

ds[i][0

]= d1;

ds[i][1

]=0;

float nowp = p;

float nowd =0;

int flag_n =0;

bool isable =

true

;for

(int i =

1; i <= n +

1; i++)if

(ds[i][0

]- ds[flag_n][0

]>

((c * d2)))

}else

if(nowp > ds[i][1

])}if

(isable)

return0;

}

藍橋杯 演算法訓練 旅行家的預算

乙個旅行家想駕駛汽車以最少的費用從乙個城市到另乙個城市 假設出發時油箱是空的 給定兩個城市之間的距離d1 汽車油箱的容量c 以公升為單位 每公升汽油能行駛的距離d2 出發點每公升汽油 p和沿途油站數n n可以為零 油站i離出發點的距離di 每公升汽油 pi i 1,2,n 計算結果四捨五入至小數點後...

藍橋杯 旅行家的預算 貪心解法

乙個旅行家想駕駛汽車以最少的費用從乙個城市到另乙個城市 假設出發時油箱是空的 給定兩個城市之間的距離d1 汽車油箱的容量c 以公升為單位 每公升汽油能行駛的距離d2 出發點每公升汽油 p和沿途油站數n n可以為零 油站i離出發點的距離di 每公升汽油 pi i 1,2,n 計算結果四捨五入至小數點後...

旅行家的預算

問題描述 乙個旅行家想駕駛汽車以最少的費用從乙個城市到另乙個城市 假設出發時油箱是空的 給定兩個城市之間的距離d1 汽車油箱的容量c 以公升為單位 每公升汽油能行駛的距離d2 出發點每公升汽油 p和沿途油站數n n可以為零 油站i離出發點的距離di 每公升汽油 pi i 1,2,n 計算結果四捨五入...