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

2021-07-24 09:36:20 字數 1147 閱讀 5615

問題描述

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

題解:這一題你要是會做的話,實現起來其實就是一道模擬題。思路就是這樣,你要脫離正常思維的限制,假設油是不會混在一起的,然後就是每次都要裝滿,如果遇到油箱裡面有比當前的油貴的,那就是得替換掉,然後用當前的油把郵箱裝滿,用的時候就是用郵箱裡面最便宜的油;開始的時候先判斷是否會無法到達。然後就是模擬

**不用看,就是要懂思路

ac**:

# include # include # include # include using namespace std;

typedef long long int ll;

int del[100010], n;

double d[100010], v[100010], x[100010];

struct cmp

} return 1;

}int main()

d[n+1]=d1;

d[0]=0;

v[0]=p;

if(!judge(c, d2))

s.clear();

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

else

} if(sumx[no])

else

break;

}} }

printf("%.2lf", ans);

return 0;

}

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

乙個旅行家想駕駛汽車以最少的費用從乙個城市到另乙個城市 假設出發時油箱是空的 給定兩個城市之間的距離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 計算結果四捨五入...

演算法訓練 旅行家的預算

原部落格 寫的很棒 題目 演算法訓練 旅行家的預算 時間限制 1.0s 記憶體限制 256.0mb 問題描述 乙個旅行家想駕駛汽車以最少的費用從乙個城市到另乙個城市 假設出發時油箱是空的 給定兩個城市之間的距離d1 汽車油箱的容量c 以公升為單位 每公升汽油能行駛的距離d2 出發點每公升汽油 p和沿...