一輛汽車加滿油後可行駛n公里。旅途中有若干個加油站。設計乙個有效演算法,指出應在哪些加油站停靠加油,使沿途加油次數最少。並證明演算法能產生乙個最優解。
對於給定的n和k個加油站位置,計算最少加油次數。
輸入資料的第一行有2 個正整數n和k(n≤5000,k≤1000),表示汽車加滿油後可行駛n公里,且旅途中有k個加油站。接下來的1 行中,有k+1 個整數,表示第k個加油站與第k-1 個加油站之間的距離。第0 個加油站表示出發地,汽車已加滿油。第k+1 個加油站表示目的地。
將計算出的最少加油次數輸出。如果無法到達目的地,則輸出「no solution!」。
input
7 7output1 2 3 4 5 1 6 6
4
1 #include 2 #include3 #include 4 #include 5
6#define inf 0x3f3f3f3f78
using
namespace
std;910
intmain()
1119 cur =k;
20 num = 0;21
for(i=0;i1;i++)
2228 cur -=a[i];
29if(cur<0) break;30
}31if(i1) cout << "
no solution!
"<32else cout << num <33return0;
34 }
汽車加油問題(貪心)
題目 問題描述 一輛汽車加滿油後可行駛nkm。旅途中有若干加油站。設計乙個有效演算法,指出應在哪些加油站停靠加油,使沿途加油次數最少。演算法設計 對於給定的n和k個加油站位置,計算最少加油次數。資料輸入 n 表示汽車加滿油後可行駛nkm k 旅途中有k個加油站 k 1個整數 表示第k個加油站與第k ...
汽車加油問題 貪心
time limit 1000 ms memory limit 65536 kib 一輛汽車加滿油後可行駛n公里。旅途中有若干個加油站。設計乙個有效演算法,指出應在哪些加油站停靠加油,使沿途加油次數最少。並證明演算法能產生乙個最優解。對於給定的n和k個加油站位置,計算最少加油次數。輸入資料的第一行有...
汽車加油問題 貪心
一輛汽車加滿油後可行駛nkm 旅途中有k個加油站。設計乙個有效演算法,指出應在哪些加油站停靠加油,使沿途加油次數最少。並計算最少加油次數。根據貪心演算法的貪心選擇性質,為了要使加油次數最少,就會選擇離加滿油的點遠一點的加油站加油。另外,當加滿油之後,都要是此後的過程中使加油次數最少。每一次汽車中剩下...