題目描述 description
揹包體積為v ,給出n個物品,每個物品占用體積為vi,價值為wi,每個物品要麼至多取1件,要麼至多取mi件(mi > 1) , 要麼數量無限 , 在所裝物品總體積不超過v的前提下所裝物品的價值的和的最大值是多少?
輸入描述 input description
第一行兩個數n,v,下面n行每行三個數vi,wi,mi表示每個物品的體積,價值與數量,mi=1表示至多取一件,mi>1表示至多取mi件,mi=-1表示數量無限
輸出描述 output description
1個數ans表示所裝物品價值的最大值
樣例輸入 sample input
2 10
3 7 2
2 4 -1
樣例輸出 sample output
22資料範圍及提示 data size & hint
對於100%的資料,v <= 200000 , n <= 200
根據物品數量的不同進行狀態轉移
#include
#include
#include
#include
using
namespace
std;
const
int maxn = 200005;
int n,v,x,vi,wi;
int ans = 0,dp[maxn];
void zopack(int vi,int wi)
void wqpack(int vi,int wi)
void dcpack(int vi,int wi,int x)
zopack(vi * x,wi * x);
return;
}int main()
for(int i = 0; i <= v; i ++)
ans = max(ans,dp[i]);
printf("%d\n",ans);
return
0;
}
codevs 3269 混合揹包
題目描述 description 揹包體積為v,給出n個物品,每個物品占用體積為vi,價值為wi,每個物品要麼至多取1件,要麼至多取mi件 mi 1 要麼數量無限 在所裝物品總體積不超過v的前提下所裝物品的價值的和的最大值是多少?輸入描述 input description 第一行兩個數n,v,下面...
Codevs 3269 混合揹包
時間限制 1 s 空間限制 256000 kb 題目等級 鑽石 diamond description 揹包體積為v 給出n個物品,每個物品占用體積為vi,價值為wi,每個物品要麼至多取1件,要麼至多取mi件 mi 1 要麼數量無限 在所裝物品總體積不超過v的前提下所裝物品的價值的和的最大值是多少?...
codevs 3269 混合揹包
3269 混合揹包 時間限制 1 s 空間限制 256000 kb 題目等級 鑽石 diamond 題解 題目描述 description 揹包體積為v 給出n個物品,每個物品占用體積為vi,價值為wi,每個物品要麼至多取1件,要麼至多取mi件 mi 1 要麼數量無限 在所裝物品總體積不超過v的前提...