2020.12.30开始学习AcWing算法《算法竞赛进阶指南》;
上传博客方便复习。
//Wecccccccc
//2021.1.2
#include <iostream>
using namespace std;
int r, n, dp[5010][5010];
int main() {
int c = 5001, v = 5001;
cin >> n >> r;
r = min(r, 5001);//防止输入的r超出地图范围
for (int i = 0; i < n; i++) {
int x, y, w;
cin >> x >> y >> w;
x++;//从1开始算起,不是从0
y++;
dp[x][y] += w;
}
for (int i = 1; i <= c; i++) {
for (int j = 1; j <= v; j++) {
dp[i][j] = dp[i][j] + dp[i - 1][j] + dp[i][j - 1] - dp[i - 1][j - 1];
}
}
int ans = 0;
for (int i = r; i <= c; i++) {
for (int j = r; j <= v; j++) {
ans =max(ans, dp[i][j] - dp[i - r][j] - dp[i][j - r] + dp[i - r][j - r]);
}
}
cout << ans << endl;
return 0;
}