dp之二維揹包hdu3496

2022-04-28 15:03:10 字數 544 閱讀 6929

題意:給你n張電影門票,但一次只可以買m張,並且你最多可以看l分鐘,接下來是n場電影,每一場電影a分鐘,b價值,要求恰好看m場電影所得到的最大價值,要是看不到m場電影,輸出0;

思路:這個題目可以很明顯的看出來,有兩個限制條件,必須看m場電影的最大價值........其實我前面在01揹包時提過,對於這樣的條件,要可以看第n場電影,那麼相對應的第n-1場電影必須看了,否則不能進行動態轉移.......我的想法是,0代表著這場電影沒有看,>0代表這場電影看了。其他的就是動態轉移了,很容易得到,dp[i][j]=max(dp[i][j],dp[i-1][j-v[i]]+val[i])........當然,在最開始的dp[0][0]=1,那麼得到的最大值會在第m場電影裡面,最大值需要減去初始值........也就是1

#include#include#includeusing namespace std;

int dp[105][1005],s[105][2];

int max(int x,int y)

int main()

return 0;

}

hdu 3496 二維0 1揹包

很典型的一道二維揹包的題目,在保證時間不超出l的情況下還要保證碟片恰好為m。第一次做二維揹包,錯了n多次,原來才發現陣列中應該為i,不應該為j。include include include include include using namespace std const int inf 1000...

DP 二維揹包 HDU 2159

description 最近xhd正在玩一款叫做fate的遊戲,為了得到極品裝備,xhd在不停的殺怪做任務。久而久之xhd開始對殺怪產生的厭惡感,但又不得不通過殺怪來公升完這最後一級。現在的問題是,xhd昇掉最後一級還需n的經驗值,xhd還留有m的忍耐度,每殺乙個怪xhd會得到相應的經驗,並減掉相應...

HDU 2159 二維 dp,揹包

最近xhd正在玩一款叫做fate的遊戲,為了得到極品裝備,xhd在不停的殺怪做任務。久而久之xhd開始對殺怪產生的厭惡感,但又不得不通過殺怪來公升完這最後一級。現在的問題是,xhd昇掉最後一級還需n的經驗值,xhd還留有m的忍耐度,每殺乙個怪xhd會得到相應的經驗,並減掉相應的忍耐度。當忍耐度降到0...