首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >蓝桥杯 激光炸弹(二维前缀和)

蓝桥杯 激光炸弹(二维前缀和)

作者头像
glm233
发布2021-03-27 19:43:15
发布2021-03-27 19:43:15
5180
举报

找二维矩阵中r*r子矩形的最大值,预处理出前缀和然后暴力枚举即可

代码语言:javascript
复制
#include<bits/stdc++.h>
using namespace std;
const int M=5010;
int a[M][M],n,r;
int main(){
    cin>>n>>r;
    r=min(5001,r);
    while(n--){
        int x,y,z;
        cin>>x>>y>>z;
        a[x+1][y+1]+=z;
    }
    for(int i=1;i<=M-1;i++){
        for(int j=1;j<=M-1;j++)a[i][j]=a[i-1][j]+a[i][j-1]-a[i-1][j-1]+a[i][j];
    }
    int res=-1;
    for(int i=r;i<=M-1;i++){
        for(int j=r;j<=M-1;j++){
            res=max(res,a[i][j]-a[i-r][j]-a[i][j-r]+a[i-r][j-r]);
        }
    }
    cout<<res<<endl;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/03/24 ,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档