有乙個箱子容量為v(正整數,0<=v<=20000),同時有n個物品(0<n<=30),每個物品有乙個體積(正整數)。
要求n個物品中,任取若干個裝入箱內,使箱子的剩餘空間為最小。
24 乙個整數,表示箱子容量
6 乙個整數,表示有n個物品
8 接下來n行,分別表示這n 個物品的各自體積312
7970 乙個整數,表示箱子剩餘空間。
這道題描述非常清晰,問題可以轉化成總容量-最大裝入總體積,然後用01揹包模板套上去
設b[i]為揹包總容量為i時的最大價值
b [j
]=ma
x(b[
j−w[
i]]+
v[i]
,b[i
])(最
大容
量>=j
>=w
[i])
(1
<=i
<=n
)b[j]=max(b[j−w[i]]+v[i],b[i])(最大容量》=j>=w[i])(1<=i<=n)
b[j]=m
ax(b
[j−w
[i]]
+v[i
],b[
i])(
最大容量
>=j
>=w
[i])
(1<=i
<=n
)上**:
#include
#include
#include
#include
#include
using
namespace std;
int n,v;
int a[
20010
],x;
intmain()
} cout<
;return0;
}
1014 裝箱問題
題目描述 description 有乙個箱子容量為v 正整數,0 v 20000 同時有n個物品 0 n 30 每個物品有乙個體積 正整數 要求n個物品中,任取若干個裝入箱內,使箱子的剩餘空間為最小。輸入描述 input description 乙個整數v,表示箱子容量 乙個整數n,表示有 n個物品...
1014 裝箱問題
題目描述 description 有乙個箱子容量為v 正整數,0 v 20000 同時有n個物品 0 n 30 每個物品有乙個體積 正整數 要求n個物品中,任取若干個裝入箱內,使箱子的剩餘空間為最小。輸入描述 input description 乙個整數v,表示箱子容量 乙個整數n,表示有 n個物品...
1014 裝箱問題
題目描述 description 有乙個箱子容量為v 正整數,0 v 20000 同時有n個物品 0 n 30 每個物品有乙個體積 正整數 要求n個物品中,任取若干個裝入箱內,使箱子的剩餘空間為最小。輸入描述 input description 乙個整數v,表示箱子容量 乙個整數n,表示有n個物品 ...