[HNOI2003]激光炸弹
[HNOI2003]激光炸弹
https://ac.nowcoder.com/acm/problem/20032
前缀和 算最大值的时候以方块的右下角进行枚举
using namespace std;
const int N=5010;
int s[N][N],n,r,x,y,v,ans=0;
int main()
{
cin >> n >> r;
while (n--) {
cin >> x >> y >> v;
s[++x][++y]=v;
}
for (int i=1;i<N;i++) for (int j=1;j<N;j++) s[i][j]=s[i][j]+s[i-1][j]+s[i][j-1]-s[i-1][j-1];
for (int i=r;i<N;i++) for (int j=r;j<N;j++) ans=max(ans,s[i][j]-s[i-r][j]-s[i][j-r]+s[i-r][j-r]);
cout << ans;
return 0;
}