Pascal 题解 P3835 4.沙盘游戏原题:

Pascal 题解 P3835 4.沙盘游戏

原题:  3835.4.沙盘游戏 FHD_WOLF 2025.1.5

简单的区域前缀和
答案附上:

var
 a,b:array[0..280,0..280] of longint;
 i,j,i1,j1,n,m,s,max:longint;
begin
 readln(n,m);
 for i:=1 to n do
  begin
   for j:=1 to m do
    begin
     read(a[i,j]);
     b[i,j]:=b[i-1,j]+a[i,j];//前缀和的经典
    end;
   readln;
  end;
 max:=0;
 for i:=1 to n do
  for j:=i to n do
   begin
    s:=0;
    for i1:=1 to m do
     begin
      s:=s+(b[j,i1]-b[i-1,i1]);
      if s<0 then s:=0;//以免负数来捣乱
      if s>max then max:=s;
     end;
   end;
 writeln(max);
end.

你可能感兴趣的:(游戏,算法)