首页 > 其他 > 详细

luoguP2280 [HNOI2003]激光炸弹

时间:2019-08-02 01:39:49      阅读:114      评论:0      收藏:0      [点我收藏+]

luoguP2280 [HNOI2003]激光炸弹

题面

题目链接

题解

二维前缀和

#include<bits/stdc++.h>

using namespace std;

const int MAXN = 5000 + 10;

inline int read()
{
    int f=1,x=0;
    char ch;
    do
    {
        ch=getchar();
        if(ch==-) f=-1;
    }while(ch<0||ch>9);
    do
    {
        x=(x<<3)+(x<<1)+ch-0;
        ch=getchar();
    }while(ch>=0&&ch<=9);
    return f*x;
} 

int t,r;
int sum[MAXN][MAXN];

int main()
{
    t=read();r=read();
    for(int i=1;i<=t;i++)
    {
        int x=read(),y=read(),v=read();
        sum[x+1][y+1]=v; 
    }
    for(int i=1;i<=5000 + 1;i++)
        for(int j=1;j<=5000 + 1;j++)
            sum[i][j]=sum[i-1][j]+sum[i][j-1]+sum[i][j]-sum[i-1][j-1];
    int ans=0;
    for(int i=0;i<=5000 + 1-r;i++)
        for(int j=0;j<=5000 + 1-r;j++)
            ans=max(ans,sum[i+r][j+r]-sum[i+r][j]-sum[i][j+r]+sum[i][j]);
    cout<<ans<<endl;
            
}

 

luoguP2280 [HNOI2003]激光炸弹

原文:https://www.cnblogs.com/wlzs1432/p/11286052.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!