您的位置:首页 > 其它

装载问题ACC pascal程序

2016-12-02 20:14 405 查看
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.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: