2023年分割槽聯賽普級組之四 裝箱問

2021-07-11 02:00:05 字數 1120 閱讀 9051

description

有乙個箱子容量為v(正整數,0<=v<=20000),同時有n個物品(0<n<=30=,每個物品有乙個體積(正整數)。 

要求n個物品中,任取若干個裝入箱內,使箱子的剩餘空間為最小。 

input

output

sample input

24    乙個整數,表示箱子容量 

6      乙個整數,表示有n個物品 

8    接下來n行,分別表示這n 個物品的各自體積 

12 

7

sample output

0  乙個整數,表示箱子剩餘空間。

解題思路1:f[i,j]表示前i件物品放入乙個容量為j的揹包可以獲得的最大價值,狀態轉移方程為:
f[i,j]=max

(1<=i<=n,v>=j>=0)

v-f[v]即為所求。

時間複雜度:

o(nv)

程式2:

varn,v,i,j:longint;

f,w:array[0..20000]of longint;

function max(a,b:longint):longint;

begin

if a>b then exit(a) else exit(b);

end;

begin

readln(v);

readln(n);

for i:=1 to n do

readln(w[i]);

for i:=1 to n do

for j:=v downto 0 do

if j>=w[i] then f[j]:=max(f[j],f[j-w[i]]+w[i]);

writeln(v-f[v]);

end.

版權屬於: chris

2023年分割槽聯賽普級組之四 裝

description 有乙個箱子容量為v 正整數,0 v 20000 同時有n個物品 0 n 30 每個物品有乙個體積 正整數 要求n個物品中,任取若干個裝入箱內,使箱子的剩餘空間為最小。input 乙個整數,表示箱子容量。乙個整數,表示有n個物品。接下來n行,分別表示這n 個物品的各自體積 ou...

2023年分割槽聯賽普級組之四 裝箱問

description 有乙個箱子容量為v 正整數,0 v 20000 同時有n個物品 0 n 30 每個物品有乙個體積 正整數 要求n個物品中,任取若干個裝入箱內,使箱子的剩餘空間為最小。input output sample input 24 乙個整數,表示箱子容量 6 乙個整數,表示有n個物品...

2023年分割槽聯賽普級組之四 裝箱問題

2001年分割槽聯賽普級組之四 裝箱問題 time limit 1000ms memory limit 65536k total submit 396 accepted 217 description 有乙個箱子容量為v 正整數,0 v 20000 同時有n個物品 0 n 30 每個物品有乙個體積 ...