時間限制:
3000 ms | 記憶體限制:
65535 kb
難度: 3
描述 ctest有n個蘋果,要將它放入容量為v的揹包。給出第i個蘋果的大小和價錢,求出能放入揹包的蘋果的總價錢最大值。
輸入
有多組測試資料,每組測試資料第一行為2個正整數,分別代表蘋果的個數n和揹包的容量v,n、v同時為0時結束測試,此時不輸出。接下來的n行,每行2個正整數,用空格隔開,分別代表蘋果的大小c和價錢w。所有輸入數字的範圍大於等於0,小於等於1000。
輸出對每組測試資料輸出乙個整數,代表能放入揹包的蘋果的總價值。
樣例輸入
3 31 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 ...