欢迎访问~原文出处——博客园-zhouzhendong

去博客园看该题解


题目传送门 - BZOJ1218


题意概括

  给出一个大的矩阵,求边长为r的正方形区域的最大sum。


题解

  二维前缀和然后暴力就可以了。


代码

#include <cstring>
#include <algorithm>
#include <cstdio>
#include <cstdlib>
#include <cmath>
using namespace std;
const int N=5000+5;
int sum[N][N];
int n,x,y,v,r;
int main(){
memset(sum,0,sizeof sum);
scanf("%d%d",&n,&r);
for (int i=1;i<=n;i++){
scanf("%d%d%d",&x,&y,&v);
sum[x+1][y+1]+=v;
}
for (int i=1;i<=5001;i++)
for (int j=1;j<=5001;j++)
sum[i][j]+=sum[i][j-1];
for (int i=1;i<=5001;i++)
for (int j=1;j<=5001;j++)
sum[i][j]+=sum[i-1][j];
int ans=0;
for (int i=r;i<=5000;i++)
for (int j=r;j<=5000;j++)
ans=max(ans,sum[i][j]-sum[i][j-r]-sum[i-r][j]+sum[i-r][j-r]);
printf("%d",ans);
return 0;
}

  

BZOJ1218 [HNOI2003]激光炸弹 二维前缀和的更多相关文章

  1. [日常摸鱼]bzoj1218[HNOI2003]激光炸弹-二维前缀

    题意:二维网格一些格子有权值,求用边长为$r$的正方形能覆盖到格子权值和的最大值,格子大小$ \leq 5000$ 非常裸的二维前缀,然而 题目下标从0开始! QAQ 要是比赛就要爆零啦- #incl ...

  2. bzoj 1218 [HNOI2003]激光炸弹 二维前缀和

    [HNOI2003]激光炸弹 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3022  Solved: 1382[Submit][Status][Di ...

  3. 【AcWing 99】激光炸弹——二维前缀和

    (题面来自AcWing) 一种新型的激光炸弹,可以摧毁一个边长为 R 的正方形内的所有的目标. 现在地图上有 N 个目标,用整数Xi,Yi表示目标在地图上的位置,每个目标都有一个价值Wi. 激光炸弹的 ...

  4. luogu P2280 激光炸弹(二维前缀和)

    由题给的xi, yi范围,可以建立二维地图maze[i][j],记录i j范围上的所有目标的价值总和 即有maze[xi][yi] += wi 然后接下来的目标就是求出该二维数组的前缀和 可得到前缀和 ...

  5. bzoj1218: [HNOI2003]激光炸弹(DP二维前缀和)

    1218: [HNOI2003]激光炸弹 题目:传送门 题解: 一道经典题目啊... 为了更好的操作...把整个坐标系向右上角移动,从(1,1)开始 那么f[i][j]统计一下以(i,j)作为右上角, ...

  6. Acwing-99-激光炸弹(二维前缀和)

    链接: https://www.acwing.com/problem/content/101/ 题意: 一种新型的激光炸弹,可以摧毁一个边长为 R 的正方形内的所有的目标. 现在地图上有 N 个目标, ...

  7. [luogu2280][bzoj1218][HNOI2003]激光炸弹

    题目描述 一种新型的激光炸弹,可以摧毁一个边长为R的正方形内的所有的目标.现在地图上有n(N<=10000)个目标,用整数Xi,Yi(其值在[0,5000])表示目标在地图上的位置,每个目标都有 ...

  8. [bzoj1218][HNOI2003]激光炸弹_暴力

    激光炸弹 bzoj-1218 HNOI-2003 题目大意:在笛卡尔坐标系上有n个点,问一个平行于坐标轴的r*r的正方形可以最多覆盖多少个目标. 注释:$1\le n \le 10000$,$1\le ...

  9. BZOJ1218 [HNOI2003]激光炸弹

    题目后面写着DP就当它是DP吧.. 本来是扫描线+线段树的说,但是捏5000^2还是能过滴,于是暴力枚举正方形+所谓的DP就解决了. /******************************** ...

随机推荐

  1. FastReport报表打印总页数的问题?

    设置两次报表后加入引号内内容 "第[Page#]页 共[TotalPages#]页" 本站文章除注明转载外,均为本站原创或翻译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果 ...

  2. TCP/IP详解 卷1 第十七章 TCP:传输控制协议

    17.2 TCP的服务 TCP提供了一种面向连接的.可靠的字节流服务.两个使用TCP的应用在彼此交换数据之前必须先建立一个TCP连接. TCP通过下列方式来提供可靠性: 1)  应用数据被分割成TCP ...

  3. C# 一般处理程序下载文件

    using System; using System.Collections; using System.Data; using System.Linq; using System.Web; usin ...

  4. Linux - 账户切换授权

    sudo 切换账户 echo myPassword | sudo -S ls /tmp # 直接输入sudo的密码非交互,从标准输入读取密码而不是终端设备 visudo # sudo命令权限添加 /e ...

  5. JavaScript之函数调用与被调用的上下文对象this

    不同的调用机制决定了函数上下文对象的不同: 1.  作为普通函数进行调用时,其上下文是全局对象window; 2.  作为(对象)方法进行调用时,其上下文对象时拥有该方法的对象; 3.  作为构造器( ...

  6. B. Light It Up

    题目链接:http://codeforces.com/problemset/problem/1000/B 代码: #include<iostream> #include<cstrin ...

  7. 【黑客免杀攻防】读书笔记7 - 软件逆向工程基础1(函数调用约定、Main函数查找)

    0x1 准备工作 1.1.准备工具 IDA:交互式反汇编工具 OllyDbg:用户层调试工具 Visual Studio:微软开发工具 1.2.基础知识 C++开发 汇编语言 0x2 查找真正的mai ...

  8. UML和模式应用4:初始阶段(6)--迭代方法中如何使用用例

    1.前言 用例是UP和其他众多迭代方法的核心.UP提倡用例驱动开发. 2. 迭代方法中如何使用用例 功能需求首先定义在用例中 用例是迭代计划的重要部分,迭代是通过选择一些用例场景或整个用例来定义的 用 ...

  9. Centos6.5使用yum安装svn

    1.测试环境 centos5.5 2.安装svn yum -y install subversion //测试SVN是否安装成功,执行:svnserve --version 3.配置 mkdir /w ...

  10. Jenkins实现定时、顺序编译

    1      Jenkins实现定时.顺序编译 l  Jenkins 编译流程:更新代码,编译公共服务,编译普通服务(普通服务依赖于公共服务).以下图为例,首先执行 update,再执行 icto_c ...