luogu1616 瘋狂的採藥 完全揹包

2021-09-22 12:31:54 字數 504 閱讀 7344

知道時間 t ,有n 株備選藥品,知道每件藥品的數量是無限的,採摘一株需要用時 v,價值 w;

求 t 時間內,能採摘的最大價值的藥;

用 i 表示當前可以放進箱子的物品總數量不等,因為每種藥可以拿多株,

這是乙個似乎比3選x 更複雜的組合問題。

題目要求知道最優狀態,所以可以忽略過程;

降維分析,因為只考慮物體的體積,不考慮形狀等亂七八糟的東西,用打表:

用遞推的思維,正向列舉時間的消耗,得到最優解。

**:

//luogu1616:瘋狂的採藥

//完全揹包元問題

#includeusing namespace std;

int v,n,t,x;

int f[100005];

int maxx(int x,int y)

int main() }

printf("%d",f[v]);

return 0;

}

洛谷 P1616 瘋狂的採藥

題目概述 給定時間t,草藥數n,採每組草藥所需的時間a i 和該組草藥的價值b i 求在給定的時間內能採到的草藥的最大價值。每種草藥可以無限採。n 10000,且n t 10 7 解題思路 我們知道,對於這類揹包問題,時間複雜度為 n t 在題目所給的範圍內不會超時,方法與01揹包一致,不過掃瞄的順...

洛谷P1616 瘋狂的採藥

完全揹包,可以用乙個常數優化,對於同乙個價值的量,僅儲存花費最小的那個就行了,因為每種都有無限多個。includeusing namespace std int n,v int c 10005 w 10005 int d 100005 int mincost 10005 pos void compl...

洛谷p1616瘋狂的採藥

這是個樸實無華的名字,所以下面是一篇樸實無華的文章,請大牛們輕噴 洛谷上這道題確實很瘋狂。其實這是一道完全揹包的板子題,但有兩點需要注意 所以,獻上第一次全wa includeusing namespace std int f 105 105 w 105 c 105 直接用的板子,陣列開的不夠大re...