45pts求助qwq
查看原帖
45pts求助qwq
63287
Sky_Brilliant楼主2020/11/8 21:11
    dp,dp1:array[-5..1005] of int64;
    a:array[-5..1005,-5..1005] of longint;
    f:array[-5..1005,-5..1005] of int64;
function max(a,b:int64):int64;
begin
    if a>b then exit(a) else exit(b);
end;
begin
//assign(input,'number.in');reset(input);
//assign(output,'number.out');rewrite(output);
    readln(n,m);
    for i:=1 to n do
        for j:=1 to m do read(a[i,j]);
    for i:=1 to n do f[i,1]:=a[i,1];
    for i:=2 to n do f[i,1]:=max(f[i,1],f[i-1,1]+a[i,1]);
    if m=1 then
    begin
        writeln(f[n,m]);
        close(input);
        close(output);
        halt;
    end;
    for i:=2 to m-1 do
    begin
        for j:=1 to n do dp[j]:=f[j,i-1]+a[j,i];
        for j:=2 to n do dp[j]:=max(dp[j],dp[j-1]+a[j,i]);
        for j:=1 to n do dp1[j]:=f[j,i-1]+a[j,i];
        for j:=n-1 downto 1 do dp1[j]:=max(dp1[j],dp1[j+1]+a[j,i]);
        for j:=1 to n do f[j,i]:=max(dp[j],dp1[j]);
    end;
    for i:=1 to n do f[i,m]:=f[i,m-1]+a[i,m];
    for i:=2 to n do f[i,m]:=max(f[i,m],f[i-1,m]+a[i,m]);
    writeln(f[n,m]);
close(input);
close(output);
end.
2020/11/8 21:11
加载中...