洛谷 P1776 寶物篩選題解

2021-10-25 04:21:37 字數 726 閱讀 6562

p1776 寶物篩選

題解思路:多重揹包模板。將第i種物品分成若干件物品,其中每件物品有乙個係數,這件物品的費用和價值均是原來的費用和價值乘以這個係數。例如,如果p[i]為13,就將這種物品分成係數分別為1 , 2 , 4 , 6 的四件物品,則這四件物品的費用為kw[i]、價值為kv[i]。(k是物品的數目,而w[i]和v[i]分別為費用和價值)。這樣我們就把一件物品拆分為多個物品,然後我們可以使用01揹包求解,因為現在每個物品只有1件。

**:

#include

#include

using

namespace std;

const

int maxn =

5000000

;int n, k, v[maxn]

, w[maxn]

, m[maxn]

,cnt,v[maxn]

,w[maxn]

,dp[maxn]

;int

main()

for(

int i =

1; i <= n; i++)if

(m[i]!=0

)}for(

int i =

1; i <= cnt; i++)}

cout << dp[k]

<< endl;

}

P1776 寶物篩選 題解

同步 原題鏈結 簡要題意 多重揹包模板。即給定 n nn 個物品和乙個容積為 v vv 的揹包,每件物品有價值 v iv i vi 重量 w iw i wi 和個數 g ig i gi 求最大價值。n 1 05 n leq 10 5 n 105.如果你學過揹包九講演算法,這裡就顯得比板子還要板子了吧...

洛谷P1776 寶物篩選

當年在tb桌前跪著聽懂了單調佇列優化多重揹包 然後那天下午codevs上的多重揹包一直過不去 現在codevs沒了,時間過得真快,有點心酸,當年bzoj也不知道,全在codevs上做題,好多 記錄都沒了。今天突然發現這題補掉,舒服了 includeusing namespace std const ...

洛谷P1776 寶物篩選

題目描述 終於,破解了千年的難題。小 ff 找到了王室的寶物室,裡面堆滿了無數價值連城的寶物。這下小 ff 可發財了,嘎嘎。但是這裡的寶物實在是太多了,小 ff 的採集車似乎裝不下那麼多寶物。看來小 ff 只能含淚捨棄其中的一部分寶物了。小 ff 對洞穴裡的寶物進行了整理,他發現每樣寶物都有一件或者...