汽車加油問題(貪心演算法)

2021-09-19 01:21:55 字數 775 閱讀 3285

汽車加油問題

time limit: 1000 ms memory limit: 65536 kib

problem description

一輛汽車加滿油後可行駛n公里。旅途中有若干個加油站。設計乙個有效演算法,指出應在哪些加油站停靠加油,使沿途加油次數最少。並證明演算法能產生乙個最優解。

對於給定的n和k個加油站位置,計算最少加油次數。

input

輸入資料的第一行有2 個正整數n和k(n≤5000,k≤1000),表示汽車加滿油後可行駛n公里,且旅途中有k個加油站。接下來的1 行中,有k+1 個整數,表示第k個加油站與第k-1 個加油站之間的距離。第0 個加油站表示出發地,汽車已加滿油。第k+1 個加油站表示目的地。

output

將計算出的最少加油次數輸出。如果無法到達目的地,則輸出「no solution!」。

sample input

7 71 2 3 4 5 1 6 6

sample output

4hint

source

#include using namespace std;

int main()

else if(a[i] > n) //若此加油站距離下一加油站的距離大於加滿油的行駛距離,退出,無解

else //否則,汽車加油,i--,因為還要減去加油站的距離

}if(i < k)

else

cout

}

汽車加油問題 貪心演算法

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

汽車加油問題(貪心演算法)

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

貪心演算法之汽車加油問題

場景 一 一輛汽車加滿油後可行駛n公里。旅途中有若干個加油站。應在哪些加油站停靠加油,使沿途加油次數最少。汽車行駛過程中,不到萬不得已不加油,應走到自己能走到並且離自己最遠的那個加油站,在那個站加滿油後,將那個加油站作為新的起點,再按照同樣的方法遞迴下去。場景 二 在乙個固定長度的路線上,有多個加油...