洛谷1049 裝箱問題 解題報告

2022-05-06 05:36:08 字數 1044 閱讀 5157

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

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

輸入格式:

乙個整數,表示箱子容量

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

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

輸出格式:

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

輸入樣例#1:

2468

31279

7

輸出樣例#1:

0
noip2001普及組 第4題

動態規劃

01揹包的變式題。

只需在01揹包思想的基礎上,把物品的體積同時看做物品的價值,最後用箱子的容積減去最大體積,即可解決此問題。

我們可以得到狀態轉移方程:f[j]:=max;

初始:f[j]=0;

目標:v-f[v]。

下面附上**。

var  

v,n,i,j:longint;  

a:array[1..30] of longint;  

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

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

begin  

if x>y then exit(x)  

else exit(y);  

end;  

begin  

readln(v);  

readln(n);  

for i:=1 to n do  

readln(a[i]);  

for i:=1 to n do  

for j:=v downto a[i] do  

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

writeln(v-f[v]);  

end.  

洛谷P1049裝箱問題題解 zhengjun

題目描述 有乙個箱子容量為v vv 正整數,0 v 20000 0 le v le 20000 0 v 20 000 同時有n nn個物品 0 300 030 每個物品有乙個體積 正整數 要求n nn個物品中,任取若干個裝入箱內,使箱子的剩餘空間為最小。輸入格式 1 11個整數,表示箱子容量 1 1...

洛谷 P1049 裝箱問題

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

洛谷P1049 裝箱問題

有乙個箱子容量為v 正整數,0 v 20000 同時有n個物品 0要求n個物品中,任取若干個裝入箱內,使箱子的剩餘空間為最小。輸入格式 1個整數,表示箱子容量 1個整數,表示有n個物品 接下來n行,分別表示這n個物品的各自體積 輸出格式 1個整數,表示箱子剩餘空間。輸入樣例 1 複製 2468 31...