汽車加油問題 貪心

2021-10-07 17:16:10 字數 1255 閱讀 1558

一輛汽車加滿油後可行駛nkm 。旅途中有k個加油站。設計乙個有效演算法,指出應在哪些加油站停靠加油,使沿途加油次數最少。並計算最少加油次數。

根據貪心演算法的貪心選擇性質, 為了要使加油次數最少,就會選擇離加滿油的點遠一點的加油站加油

另外,當加滿油之後,都要是此後的過程中使加油次數最少。每一次汽車中剩下的油不能再行駛到下一站時,就在該站加油。每一次加滿油之後與起點具有相同的條件,可以看做乙個新的起點,過程也是相同的。因此,該問題具有最優子結構性質

nt greedy

(vector<

int>

x,int n)

for(i=

0, s=

0; i

++i)

return sum;

}

n:表示汽車加滿油之後可以行駛nkm;k:旅途中有k個加油站

加油站數:7

最大行駛距離:7

每個站之間的距離:1 2 3 4 5 1 6 6

紅色部分表明要在從前乙個加油站不能行駛到當前加油站,需在前乙個加油站加油。

一共需要加油4次

#include

using namespace std;

intmain()

for(

int i=

0;i<=k;i++)if

(s-a[i]

>=0)

else

} cout<<

"需要加油次數:"

<

return0;

}

輸入請輸入最大行駛路徑和站點個數:7 7

請輸入每個站點之間的路徑:1 2 3 4 5 1 6 6

輸出

需要加油次數:4

汽車加油問題(貪心)

題目 問題描述 一輛汽車加滿油後可行駛nkm。旅途中有若干加油站。設計乙個有效演算法,指出應在哪些加油站停靠加油,使沿途加油次數最少。演算法設計 對於給定的n和k個加油站位置,計算最少加油次數。資料輸入 n 表示汽車加滿油後可行駛nkm k 旅途中有k個加油站 k 1個整數 表示第k個加油站與第k ...

汽車加油問題 貪心

time limit 1000 ms memory limit 65536 kib 一輛汽車加滿油後可行駛n公里。旅途中有若干個加油站。設計乙個有效演算法,指出應在哪些加油站停靠加油,使沿途加油次數最少。並證明演算法能產生乙個最優解。對於給定的n和k個加油站位置,計算最少加油次數。輸入資料的第一行有...

汽車加油問題 貪心策略

問題描述 一輛汽車加滿油後可行駛n公里。旅途中有k個加油站。設計乙個有效演算法,在哪些加油站停靠加油,使沿途加油次數最少。輸入的第1行有2個整數n k,表示汽車加滿油可行駛 n km,圖中有k 個加油站。第二行有k 1個整數,表示第k個加油站與第k 1個加油站的距離。第0個為出發地,汽車已加滿油。第...