枚举 · 例10-激光炸弹(牛客二位前缀和)

枚举 · 例10-激光炸弹

#include <bits/stdc++.h>
using namespace std;

const int N = 5010;

int a[N][N];

signed main(){
    int n, r; cin >> n >> r;
    for(int i = 1; i <= n; ++i){
        int x, y, v; cin >> x >> y >> v;
        a[x+1][y+1] = v;
    }
    
    for(int i = 1; i <= 5009; ++i)
        for(int j = 1; j <= 5009; ++j)
            a[i][j] += a[i-1][j] + a[i][j-1] - a[i-1][j-1];
    
    int maxv = INT_MIN;
    
    for(int i = r; i <= 5009; ++i)
        for(int j = r; j <= 5009; ++j)
            maxv = max(maxv, a[i][j] - a[i-r][j] - a[i][j-r] + a[i-r][j-r]);
    
    cout << maxv << endl;
    
    return 0;
}
posted @ 2025-03-26 15:32  awei040519  阅读(24)  评论(0)    收藏  举报