题目
[HNOI2003]激光炸弹
题解
读完题可以发现这几乎就是一个裸的前缀和板子,那么开敲,如果不会前缀和差分知识可以单独拿出来学习一下。
参考代码
#include<iostream>
using namespace std;
const int N = 5010;
int n, m, r;
int g[N][N];
int main(){cin >> n >> r;for(int i = 1; i <= n; i ++){int x, y, w;cin >> x >> y >> w;g[x + 1][y + 1] = w;}for(int i = 1; i < N; i ++){for(int j = 1; j < N; j ++){g[i][j] += g[i - 1][j] + g[i][j - 1] - g[i - 1][j - 1];}}int res = 0;for(int i = r; i < N ; i ++){for(int j = r; j < N; j ++){res = max(res, g[i][j] - g[i - r][j] - g[i][j - r] + g[i - r][j - r]);}}cout << res << endl;return 0;
}