題目描述:
為了挽救災區同胞的生命,心繫災區同胞的你準備自己採購一些糧食支援災區,現在假設你一共有資金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...