DP 01揹包 七夕模擬賽

2021-08-29 02:07:46 字數 1674 閱讀 7107

時間限制: 1 sec  記憶體限制: 128 mb

提交: 60  解決: 23

[提交][狀態][討論版]

" 找啊找啊找gf,找到乙個好gf,吃頓飯啊拉拉手,你是我的好gf.再見." " 誒,別再見啊..." 七夕...七夕...七夕這個日子,對於sqybi這種單身的菜鳥來說是多麼的痛苦...雖然他聽著這首叫做" 找啊找啊找gf" 的歌,他還是很痛苦.為了避免這種痛苦,sqybi決定要給自己找點事情幹.他去找到了七夕模擬賽的負責人zmc  mm,讓她給自己乙個出題的任務.經過幾天的死纏爛打,zmc  mm終於同意了. 但是,拿到這個任務的sqybi發現,原來出題比單身更讓人感到無聊-_-....所以,他決定了,要在出題的同時去辦另一件能夠使自己不無聊的事情--給自己找gf. sqybi現在看中了n個mm,我們不妨把她們編號1到n.請mm吃飯是要花錢的,我們假設請i號mm吃飯要花rmb[i]塊大洋.而希望騙mm當自己gf是要費人品的,我們假設請第i號mm吃飯試圖讓她當自己gf的行為(不妨稱作泡該mm)要耗費rp[i]的人品.而對於每乙個mm來說,sqybi都有乙個對應的搞定她的時間,對於第i個mm來說叫做time[i].  sqybi保證自己有足夠的魅力用time[i]的時間搞定第i個mm^_^. sqybi希望搞到盡量多的mm當自己的gf,這點是毋庸置疑的.但他不希望為此花費太多的時間(畢竟七夕賽的題目還沒出),所以他希望在保證搞到mm數量最多的情況下花費的總時間最少. sqybi現在有m塊大洋,他也通過一段時間的努力攢到了r的人品(這次為模擬賽出題也攢rp哦~~).他憑藉這些大洋和人品可以泡到一些mm.他想知道,自己泡到最多的mm花費的最少時間是多少. 注意sqybi在乙個時刻只能去泡乙個mm--如果同時泡兩個或以上的mm的話,她們會打起來的...

輸入的第一行是n,表示sqybi看中的mm數量.接下來有n行,依次表示編號為1,  2,  3,  ...,  n的乙個mm的資訊.每行表示乙個mm的資訊,有三個整數:rmb,  rp和time.最後一行有兩個整數,分別為m和r.

你只需要輸出一行,其中有乙個整數,表示sqybi在保證mm數量的情況下花費的最少總時間是多少.

4

1 2 5

2 1 6

2 2 2

2 2 3

5 5

13

資料規模對於20%資料,1< =n< =10; 對於100%資料,1< =rmb< =100,1< =rp< =100,1< =time< =1000; 對於100%資料,1< =m< =100,1< =r< =100,1< =n< =100. hint sqybi說:如果題目裡說的都是真的就好了... sqybi還說,如果他沒有能力泡到任何乙個mm,那麼他就不消耗時間了(也就是消耗的時間為0),他要用這些時間出七夕比賽的題來攢rp... 出題人 sqybi  gg

#include #include 

#include

#include

using

namespace

std;

intmain()

cin>>m>>r;

memset(dp,

0,sizeof

(dp));

memset(s,

0,sizeof

(s));

//本質上是01揹包問題

for(i=1;i<=n;i++)

else}}

}cout

return0;

}

演算法筆記 揹包DP (0 1揹包)

1.0 1揹包 參考例題 hloj416採藥 二維解法 我們設f i j 為前i個物品放進容量為j的揹包的最大價值 設體積為v i 價值為w i 我們可以列舉i 1到n 和j 1到n 不難得出狀態轉移方程 f i j max 可以知道,當第i件物品不取時,總價值為f i 1 j 取得話,總價值為前i...

揹包DP(01揹包,多重揹包,完全揹包)

從前乙個轉態轉移過來,選還是不選 for int i 1 i n i else f i j f i 1 j 01揹包優化 滾動陣列 for int i 1 i n i for int j m j 1 j if weight i j f j max f j f j weight i value i 優...

ACM 程式設計競賽 DP 01揹包

輸入 n 4 w,v w 5 輸出 7 選擇0,1,3 暴力演算法 o 2 n include using namespace std const int maxn 100 int w maxn v maxn int n,w int rec int i,int j 從第i個商品開始挑選總重量小於j的...