讨论 / dp哪里出了问题、
xiefangyan001 2012-07-10 02:09:00
点我顶贴 收藏 删除
program ex1;

var a,add:array[1..1000]of integer;

n,m,i,k,j:integer;

f:array[1..1000,1..1000]of integer;

function max(s1,s2:integer):integer;

begin

if s1>s2 then max:=s1 else max:=s2;

end;

function min(s1,s2:integer):integer;

begin

if s1<s2 then min:=s1 else min:=s2;

end;

begin

read(n,m);

for i:=1 to m do

for j:=1 to n do

f[i,j]:=maxint;

for i:=1 to n do

begin

readln(a[i]);

add[i]:=add[i-1]+a[i];

f[1,i]:=add[i];

end;

for i:=2 to m do

for j:=i to n do

for k:=1 to j-1 do

f[i,j]:=min(f[i,j],max(f[i-1,k],add[j]-add[k]))

write(f[n,m]);

end.

查看更多回复
提交回复