最優加油方法

2021-08-20 12:23:58 字數 818 閱讀 7544

已知一條公路上,有乙個起點和乙個終點,這之間有n個加油站。已知:從這n個加油站到終點的距離d與各個加油站可以加油的量l,起點位置至終點的距離l與起始時刻油箱的油量p。假設1個單位的汽油走1個單位的距離,油箱沒有上限,最少加幾次油,可以從起點開至終點?(無法到達返回-1)

貪心思想,類似於跳躍遊戲,即,當我們的油量不足以走下一段路程時(從當前加油站到下乙個加油站),就說明在這個位置之前就應該加油了,但是為了加油次數最少,所以每次加最大的量,但是加了最大的量可能還不足以走下一段路程,所以就加次大的量。所以用堆來儲存路過的加油站的油量,加油時從這個堆中取出最大的。

//s(16)   a(2)    b(5)    c(3)   d(4)   e

// |_______|________|_______|______|____|

// 10 4 1 6 4

//b,d各加一次,最少加2次油

#include#include#include#includeusing namespace std;

bool cmp(const pair& a, const pair& b)

//l是起點到終點的距離,p為起點初始的汽油量,pair《加油站到終點的距離,加油站的汽油量》

int get_mini(int l, int p, vector> & stop)

scanf("%d %d", &l, &p);

printf("%d\n", get_mini(l, p, stop));

return 0;

}

貪心演算法之最優加油方法 額外堆的資料結構

加汽油遊戲,計算從起點至終點最少需要加幾次油 l 表示起點到終點的距離 p 表示起點的油量 stop中 first儲存的是該汽油站距離終點的距離,second儲存的是該汽油站的油量 include intcalmingasup int l,int p,vector int,int stop stop...

最優化方法

1無約束約束方法 梯度下降 求解線性回歸,有明確的目標函式。利用目標函式的梯度來更新引數,使用最小二乘時,用loss的梯度更新。範數為2的最速下降。牛頓法 目標函式已知,用泰勒展開的近似作為近似解,把近似值帶入目標函式求出近似的引數作為更新值。由於捨棄了泰勒公式的高階項,新的引數值會更接近真實解。在...

最優化方法 概述

乙個簡單的問題描述如下 周長一定,圍成怎樣的形狀能使得面積最大。西元前212 187年,古希臘數學家阿基公尺德 archimedes 就曾證明了已知周長,圓所包圍的面積最大的等周問題。這算是乙個基本的最優化問題。最優化方法定義 應用數學的重要研究領域。它是研究在給定約束之下如何尋求某些因素 的量 以...