shuizilong96 2008-11-29 06:45:00
点我顶贴
收藏
删除
const max =10000;
var n,i,j,s,m:integer;
a,b:array [1..max] of integer;
c:array [0..max] of longint;
begin
readln(n);
for i:=1 to n do
begin
readln(a[i]);
b[i]:=a[i];
s:=s+a[i];
end;
m:=s div 2;
for i:=1 to n do
for j:=m downto a[i] do
if c[j-a[i]]+b[i]>c[j] then c[j]:=c[j-a[i]]+b[i];
write(s-c[m]-c[m]);
end.
72
原理是分半动规
#1 shuizilong96@2008-11-26 07:39:00
9658
回复
删除
还有,其实238VERY EASY。。。。。
var s,b,c,e:real;
begin
readln(s,b,c,e);
writeln(sqrt(sqr(abs(s-c))+sqr(sqrt(b)+sqrt(e))):0:3);
end.