传送门
http://www.lydsy.com/JudgeOnline/problem.php?id=1218
题目大意
给你n个点的坐标及权值,用r*r的范围最大覆盖是多少
题解
暴力枚举+二维前缀和判断
var
sum:array[0..5001,0..5001]of longint;
i,j,k:longint;
n,r,a,b,mx,my,ans:longint;
function max(a,b:longint):longint;
begin
if a>b then exit(a) else exit(b);
end;
begin
fillchar(sum,sizeof(sum),0);
mx:=0; my:=0;
readln(n,r);
for i:=1 to n do
begin
readln(a,b,sum[a+1,b+1]);
mx:=max(mx,a+1);
my:=max(my,b+1);
end;
sum[0,0]:=0; sum[0,1]:=0; sum[1,0]:=0;
for i:=1 to max(2*r,mx) do
for j:=1 to my do
inc(sum[i,j],sum[i-1,j]+sum[i,j-1]-sum[i-1,j-1]);
ans:=0;
for i:=r to max(2*r,mx) do
for j:=r to max(2*r,my) do
ans:=max(ans,sum[i,j]-sum[i-r,j]-sum[i,j-r]+sum[i-r,j-r]);
writeln(ans);
end.