SSLOJ1014裝箱問題

2021-10-23 11:27:20 字數 949 閱讀 5849

有乙個箱子容量為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個物品 ...