動態規劃問題

2021-07-04 04:03:53 字數 843 閱讀 4326

時間限制:

3000 ms  |            記憶體限制:

65535 kb

難度: 3

描述 ctest有n個蘋果,要將它放入容量為v的揹包。給出第i個蘋果的大小和價錢,求出能放入揹包的蘋果的總價錢最大值。

輸入

有多組測試資料,每組測試資料第一行為2個正整數,分別代表蘋果的個數n和揹包的容量v,n、v同時為0時結束測試,此時不輸出。接下來的n行,每行2個正整數,用空格隔開,分別代表蘋果的大小c和價錢w。所有輸入數字的範圍大於等於0,小於等於1000。

輸出對每組測試資料輸出乙個整數,代表能放入揹包的蘋果的總價值。

樣例輸入

3 3

1 12 1

3 10 0

樣例輸出

2

分析:(1):

採用動態規劃問題思想

(2)動態規劃問題特性:

最優子結構

子重結構體

無後效性

(3)動態規化解決的問題:最優化問題

不會的親們好好看看資料吧,這個問題確實不好懂的,加油哦,baby!

下面是**:

#include

#include

#include

#include

using namespace std;

#define max 1001

int dp[max],v[max],w[max];

int max1(int x,int y)

int main()

}printf("%d",dp[c]);

}return 0; 

}

動態規劃問題

思想 如果乙個問題是由交疊的子問題所構成,那麼我們就可以用動態規劃技術來解決它。一般來說,這樣的子問題出現在對給定問題求解的遞迴關係中。這個遞推關係包含了相 同問題的更小子問題的解。動態規劃法建議,與其對交疊子問題一次又一次的求解,不如把每個較小子問題只求解一次並把結果記錄在表中。例題 0 1揹包問...

動態規劃問題

以下內容基於個人理解。一 什麼是動態規劃 動態規劃 dp 演算法,指的是 乙個問題的解決是依賴於若干個和該問題相似,但比該問題的問題規模更小的問題時,所採用的一種演算法。動態規劃是自底向上的思考問題的方法,通常要從最底層的問題開始考慮。而這類問題的特點是 解決所有本層次問題後,就可以解決上一層的問題...

動態規劃問題

連續自陣列的最大和問題,要求時間複雜度o n bool g invalidinput false int greatestsumofsubarray int array,int length int currentsum 0 int greatestsum 0x80000000 for int i ...