2001年分区联赛普级组之四 装箱问题
Time Limit:1000MS Memory Limit:65536K Total Submit:391 Accepted:213
Description
有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30=,每个物品有一个体积(正整数)。 要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。
Input
Output
Sample Input
24 一个整数,表示箱子容量 6 一个整数,表示有n个物品 8 接下来n行,分别表示这n 个物品的各自体积 3 12 7 9 7
Sample Output
0 一个整数,表示箱子剩余空间。
Source
elba
type arr=array[1..1000]of longint; var i,j,k,n,m,l,min,max,mm:longint; b:array[1..1000]of boolean; f:arr; procedure aa(n,dep:longint); var i,j,k:longint; begin if (dep>mm) or (n>=m) then begin if (dep=mm+1) and (n<=m) then begin if n>max then max:=n; exit; end; if n=m then begin writeln(n); halt; end; exit; end; if n>max then max:=n; aa(n+f[dep],dep+1); aa(n,dep+1); end; begin readln(mm,m); for i:=1 to mm do read(f[i]); fillchar(b,sizeof(b),false); aa(0,1); write(max); end.