裝箱問題 01揹包

2021-06-01 17:52:55 字數 653 閱讀 9727

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

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

輸入:第一行是乙個整數v,表示箱子容量

第二行是乙個整數n,表示有n個物品

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

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

三維狀態影象

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

n,m,i,j,k,sum:longint;

function max(x,y:longint):longint;

begin

if x>y then exit(x);

exit(y);

end;

begin

readln(m);

readln(n);

for i:=1 to n do

readln(v[i]);

for i:=1 to n do

for j:=m downto v[i] do

f[j]:=max(f[j],f[j-v[i]]+v[i]);

writeln(m-f[m]);

end.

裝箱問題(01揹包問題)

有乙個箱子容量為 v,同時有 n 個物品,每個物品有乙個體積 正整數 要求 n 個物品中,任取若干個裝入箱內,使箱子的剩餘空間為最小。輸入格式 第一行是乙個整數 v,表示箱子容量。第二行是乙個整數 n,表示物品數。接下來 n 行,每行乙個正整數 不超過10000 分別表示這 n 個物品的各自體積。輸...

裝箱問題 簡單01揹包問題)

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

揹包問題 01揹包 P1049 裝箱問題

p1049 裝箱問題 f i j 把前面 i 件物品放進容量為 j 的揹包當中所獲得的最大價值 現在有 n 件物品,揹包容積為 v 那麼列出狀態轉移方程 f i j max f i 1 j f i 1 j v i w i j v i f i 1 j j v i 0 i 0 or j 0 全域性陣列建...