一輛汽車加滿油後可行駛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個為出發地,汽車已加滿油。第...