noip2001 装箱问题
pascal吧
全部回复
仅看楼主
level 7
罗不理 楼主
2011年07月11日 02点07分 1
level 7
罗不理 楼主
偶做的
比搜索快 比DP慢一点点
var a:array [1..20000] of longint;
i,j,n,m,min,temp:longint;
procedure try(x,y:longint);
var i,j:longint;
begin
for i:=y+1 to m do
if x>=a[i] then begin x:=x-a[i]; try(x,i); x:=x+a[i]; end;
if x<min then min:=x;
end;
procedure qsoft(l,r:longint);
var t,k,i,j:longint;
begin
i:=l;j:=r;
k:=a[(l+r)div 2];
repeat
while k<a[i] do inc(i);
while k>a[j] do dec(j);
if i<=j then begin
t:=a[i];
a[i]:=a[j];
a[j]:=t;
inc(i);
dec(j);
end;
until i>j;
if j>l then qsoft(l,j);
if i<r then qsoft(i,r);
end;
begin
assign(input,'pack.in');
reset(input);
assign(output,'pack.out');
rewrite(output);
read(n,m); min:=maxlongint;
for i:=1 to m do
read(a[i]);
qsoft(1,m);
try(n,0);
writeln(min);
close(input); close(output);
end.
求观摩

2011年07月11日 02点07分 2
level 7
罗不理 楼主
搜索+贪心+强力剪枝
2011年07月11日 02点07分 3
level 6
这个有什么意义。
2011年07月11日 06点07分 4
level 7
罗不理 楼主
很给力啊 应该是全市首创吧
2011年07月11日 12点07分 5
level 12
顶顶
2016年03月20日 05点03分 7
多少年前的东西了
2016年03月20日 07点03分
level 9
数组即可吧
2016年03月20日 05点03分 8
1