九度 1455 珍惜現在,感恩生活 多重揹包

2021-09-06 14:17:16 字數 628 閱讀 1632

題目描述:

為了挽救災區同胞的生命,心繫災區同胞的你準備自己採購一些糧食支援災區,現在假設你一共有資金n元,而市場有m種大公尺,每種大公尺都是袋裝產品,其**不等,並且只能整袋購買。請問:你用有限的資金最多能採購多少公斤糧食呢?

思路

裸多重揹包, 本想練練倍增優化的, ac 後又沒動力了

**

#include #include 

#include

using

namespace

std;

int weight[222

];int bags [222

];int money [222

];int dp [222

];int

main() }}

int res = 0

;

for(int j = 0; j <= n; j ++)

res =max(res, dp[j]);

cout

<< res <}

return0;

}

題目1455 珍惜現在,感恩生活 多重揹包問題

多重揹包問題,其介於0 1揹包問題和完全揹包問題之間,每種物品可選的數量既不是無窮也不是唯一,而是介於其中的乙個確定數值,我們可以將其轉化為0 1揹包問題,視其為 k中不同的物品,但是這樣做的話,物品種類過多影響了效率 我們可以在這個基礎上做一些優化,可以將k拆分為1.2.4.k 2 c 1 c為使...

HDU 2191 珍惜現在,感恩生活

傳送門 多重揹包。一道帶有歷史的題啊,沉重的回憶。多重揹包的處理關鍵就是將每種物品的可取個數二進位製化,比如一種物品最多取7件,那麼就可以轉化為3件物品 其中每件物品相當於1,2,4件單位物品 這樣包含了取原先物品的任何一種情況 0 7件 並且在求解效率上優於轉化為7件相同物品 本質是從o n 到o...

珍惜現在,感恩生活(多重揹包)

多重揹包問題,將每種物品的個數進行拆分,轉化成01揹包問題 include include include using namespace std int main int argc,char ar int cnt 1 拆分後物品數量 cin bag m for int i 0 i m i w cn...