激光炸d题解

激光炸d题解,第1张

激光炸d题解

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网

注意行列关系,着重区分哪个是行哪个是列,裸的二维前缀

AC代码:

#include 
using namespace std;
int a[10010][10010];

int main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int n,r,h,l;
    
    cin >> n >> r;
    l = r,h = r;
    for(int i = 0;i < n;i++){
        int x,y,z;
        cin >> x >> y >> z;
        x++,y++;
        h = max(h,x);
        l = max(l,y);
        a[x][y] += z;
    }
//     h++,l++;
    for(int i = 1;i <= h;i++){
        for(int j = 1;j <= l;j++){
            a[i][j] += a[i - 1][j] + a[i][j - 1] - a[i - 1][j - 1];
        }
    }
    int ans = 0;
    for(int i = r;i <= h;i++){
        for(int j = r;j <= l;j++){
            ans = max(ans,a[i][j] - a[i - r][j] - a[i][j - r] + a[i - r][j - r]);
        }
    }
    cout << ans << endl;
    return 0;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5702500.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存