題目描述 有一個箱子容量為V(正整數,0<=V<=20000),同時有n個物品(0<n<=30,每個物品有一個體積(正整數)。 要求n個物品中,任取若干個裝入箱內,使箱子的剩余空間為最小。
輸入輸出格式 輸入格式: 一個整數,表示箱子容量 一個整數,表示有n個物品 接下來n行,分別表示這n 個物品的各自體積 輸出格式: 一個整數,表示箱子剩余空間。
輸入輸出樣例 輸入樣例#1: 24 6 8 3 12 7 9 7 輸出樣例#1: 0
程序如下:
var n,m,max,k,l:longint; a:array[1..30] of longint;PRocedure init;var i:longint;begin readln(n); readln(m); for i:=1 to m do readln(a[i]);end;procedure main(k,l:longint);begin if (k>m)or(l>=n) then begin if (l<=n)and(max>n-l) then max:=n-l; exit; end; main(k+1,l+a[k]); main(k+1,l);end;begin init; max:=maxlongint; main(1,0); write(max);end.
|
新聞熱點
疑難解答