讨论 / 大家看看我这题为啥不对
sxsxsx123890 2010-11-10 04:24:00
点我顶贴 收藏 删除
var i,j,n,m,k,max:integer;

a:array[1..100,1..100]of longint;

f:array[0..100,1..100]of longint;

w:array[1..100]of integer;

b:array[1..100,1..100]of longint;

s:array[1..100,1..100]of integer;

begin

readln(n,m);

for i:=1 to n do

begin

for j:=1 to m do

read(a[i,j]);

readln;

end;

for i:=1 to n do

for j:=1 to m do

begin

f[i,j]:=a[i,j];

for k:=i to j-1 do

if (a[i,j]+f[i-1,k]>f[i,j]) then

begin

f[i,j]:=a[i,j]+f[i-1,k];

b[i,j]:=k;

end;

end;

for i:=n to m do

begin

if f[n,i]>max then

begin

max:=f[n,i];

k:=i;

end;

end;

writeln(max);

i:=n;

while k<>0 do

begin

w[i]:=k;

k:=b[i,k];

dec(i);

end;

for i:=1 to n do

write(w[i],' ');

end.

查看更多回复
提交回复