激光炸弹(BZOJ1218)

激光炸弹(BZOJ1218)

一种新型的激光炸弹,可以摧毁一个边长为R的正方形内的所有的目标。现在地图上有n(N<=10000)个目标,用整数Xi,Yi(其值在[0,5000])表示目标在地图上的位置,每个目标都有一个价值。激光炸弹的投放是通过卫星定位的,但其有一个缺点,就是其爆破范围,即那个边长为R的正方形的边必须和x,y轴平行。若目标位于爆破正方形的边上,该目标将不会被摧毁。

输入输出格式:

输入文件的第一行为正整数n和正整数R,接下来的n行每行有3个正整数,分别表示xi,yi,vi

输出文件仅有一个正整数,表示一颗炸弹最多能炸掉地图上总价值为多少的目标(结果不会超过32767)。

输入样例:

2 1
0 0 1
1 1 1

输出样例:

1

分析:

二维数组前缀和:一定区间里价值之和

二维前缀和事例图片

\(S[i,j] = S[i-1,j] + S[i,j-1]-S[i-1,j-1]+A[i,j]\)

边长R的正方形的价值(ij为正方形的右下角)

\(P[i,j] = S[i,j] - S[i-R,j] - S[i,j-R] + S[i-R,j-R]\)

然后枚举正方形右下角找最大值

错误题解:(TLE MLE一堆 用于理解)

#include<iostream>
#define N 5000+5
using namespace std;
int A[N][N]={0};  //main函数里定义上限719 X 719
int S[N][N]={0};
int P[N][N]={0};int main(){int n,r,a,b,m;cin>>n>>r;m= 0;while(n--){int x,y,v;cin>>x>>y>>v;A[x][y] = v;if(m<x) m=x;if(m<y) m=y;}m = (m+r>5000)?5000:m+r;for(int i=0;i<m;i++){for(int j=0;j<m;j++){a = (i-1<0)?0:i-1;b = (j-1<0)?0:j-1;S[i][j] = S[a][j]+S[i][b]-S[a][b]+A[i][j];}}int max = 0;for(int i=0;i<m;i++){for(int j=0;j<m;j++){a = (i-r<0)?0:i-r;b = (j-r<0)?0:j-r;P[i][j] = S[i][j] - S[a][j] - S[i][b] + S[a][b];if(P[i][j]>max)max=P[i][j];}}cout<<max;return 0;
}

题解:

#include<iostream>
#define N 5000+5
using namespace std;
int A[N][N]={0}; int main(){int n,r,a,b,c,m;cin>>n>>r;m= 0;   // 找个上限 缩短下运行时间while(n--){int x,y,v;cin>>x>>y>>v;A[x+1][y+1] += v;if(m<x) m=x;if(m<y) m=y;}m = (m+r>5000)?5000:m+r;for(int i=1;i<=m;i++){for(int j=1;j<=m;j++){a = (i-1<0)?0:i-1;b = (j-1<0)?0:j-1;A[i][j] += A[a][j]+A[i][b]-A[a][b];}}int max = 0;for(int i=1;i<=m;i++){for(int j=1;j<=m;j++){a = (i-r<0)?0:i-r;b = (j-r<0)?0:j-r;c= A[i][j] - A[a][j] - A[i][b] + A[a][b];if(c>max)max=c;}}cout<<max;return 0;
}

转载于:https://www.cnblogs.com/wendiudiu/p/10762170.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/251857.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15 not found

解决错误呈现该错误的原因是当前的GCC版本中&#xff0c;没有GLIBCXX_3.4.15&#xff0c;须要安装更高版本。我们可以输入&#xff1a;strings /usr/lib/libstdc.so.6 | grep GLIBCXX&#xff0c;查看当前的GCC版本&#xff0c;成果如下&#xff1a;GLIBCXX_3.4 GLIBCXX_3.4.1 …

用servlet设计OA管理系统时遇到问题

如果不加单引号会使得除变量和int类型的值不能传递 转发和重定向的区别 转发需要填写完整路径&#xff0c;重定向只需要写相对路径。原因是重定向是一次请求之内已经定位到了服务器端&#xff0c;转发则需要两次请求每次都需要完整的路径。 Request和response在解决中文乱码时的…

JDK源码——利用模板方法看设计模式

前言&#xff1a; 相信很多人都听过一个问题&#xff1a;把大象关进冰箱门&#xff0c;需要几步&#xff1f; 第一&#xff0c;把冰箱门打开&#xff1b;第二&#xff0c;把大象放进去&#xff1b;第三&#xff0c;把冰箱门关上。我们可以看见&#xff0c;这个问题的答案回答的…

[Usaco2010 Mar]gather 奶牛大集会

1827: [Usaco2010 Mar]gather 奶牛大集会 Time Limit: 1 Sec Memory Limit: 64 MB Submit: 1129 Solved: 525 [Submit][Status][Discuss]Description Bessie正在计划一年一度的奶牛大集会&#xff0c;来自全国各地的奶牛将来参加这一次集会。当然&#xff0c;她会选择最方便的…

与TIME_WAIT相关的几个内核参数

问题 公司用浏览器访问线上服务一会失败一会成功&#xff0c;通过ssh连接服务器排查时发现ssh也是这样&#xff1b; 检查 抓包后发现建立连接的请求已经到了服务器&#xff0c;但它没有响应&#xff1b; 纠结了好久&#xff0c;后来在腾讯云技术支持及查了相关资料后发现是开启…

View的绘制-layout流程详解

目录 作用 根据 measure 测量出来的宽高&#xff0c;确定所有 View 的位置。 具体分析 View 本身的位置是通过它的四个点来控制的&#xff1a; 以下涉及到源码的部分都是版本27的&#xff0c;为方便理解观看&#xff0c;代码有所删减。 layout 的流程 先通过 measure 测量出 Vi…

1-1、作用域深入和面向对象

课时1&#xff1a;预解释 JS中的数据类型 number、string、 boolean、null、undefined JS中引用数据类型 object: {}、[]、/^$/、Date Function var num12; var obj{name:白鸟齐鸣,age:10}; function fn(){ console.log(勿忘初心方得始终&#xff01;) }console.log(fn);//把整…

茶杯头开枪ahk代码

;说明这个工具是为了茶杯头写的,F1表示换枪攻击,F3表示不换枪攻击,F2表示停止攻击. $F1::loop{ GetKeyState, state, F2, Pif state D{break } Send, {l down}Send, {l up}sleep,10Send,{m down}Send,{m up} }return $F3::loop{ GetKeyState, state, F2, Pif state D{break }…

Vim使用技巧:撤销与恢复撤销

在使用VIM的时候&#xff0c;难免会有输错的情况&#xff0c;这个时候我们应该如何撤销&#xff0c;然后回到输错之前的状态呢&#xff1f;答案&#xff1a;使用u&#xff08;小写&#xff0c;且在命令模式下&#xff09;命令。 但如果有时我们一不小心在命令模式下输入了u&…

PaddlePaddle开源平台的应用

最近接触了百度的开源深度学习平台PaddlePaddle&#xff0c;想把使用的过程记录下来。 作用&#xff1a;按照这篇文章&#xff0c;能够实现对图像的训练和预测。我们准备了四种颜色的海洋球数据&#xff0c;然后给不同颜色的海洋球分类为0123四种。 一、安装paddlepaddle 1.系统…

Hyperledger Fabric区块链工具configtxgen配置configtx.yaml

configtx.yaml是Hyperledger Fabric区块链网络运维工具configtxgen用于生成通道创世块或通道交易的配置文件&#xff0c;configtx.yaml的内容直接决定了所生成的创世区块的内容。本文将给出configtx.yaml的详细中文说明。 如果需要快速掌握Fabric区块链的链码与应用开发&#x…

js闭包??

<script>var name "The Window";var object {name : "My Object",getNameFunc : function(){console.log("11111");console.log(this); //this object //调用该匿名函数的是对象return function(){console.log("22222");co…

JavaScript----BOM(浏览器对象模型)

BOM 浏览器对象模型 BOM 的全称为 Browser Object Model,被译为浏览器对象模型。BOM提供了独立于 HTML 页面内容&#xff0c;而与浏览器相关的一系列对象。主要被用于管理浏览器窗口及与浏览器窗口之间通信等功能。 1、Window 对象 window对象是BOM中最顶层对象&#xff1b;表示…

JWT协议学习笔记

2019独角兽企业重金招聘Python工程师标准>>> 官方 https://jwt.io 英文原版 https://www.ietf.org/rfc/rfc7519.txt 或 https://tools.ietf.org/html/rfc7519 中文翻译 https://www.jianshu.com/p/10f5161dd9df 1. 概述 JSON Web Token&#xff08;JWT&#xff09;是…

DOM操作2

一、API和WebAPI API就是接口&#xff0c;就是通道&#xff0c;负责一个程序和其他软件的沟通&#xff0c;本质是预先定义的函数。Web API是网络应用程序接口。包含了广泛的功能&#xff0c;网络应用通过API接口&#xff0c;可以实现存储服务、消息服务、计算服务等能力&#x…

浮动布局demo

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>浮动布局</title><style type"text/css">*{margin: 0;padding: 0;}header{height: 150px;background: yellow;}nav{height: 30px;background: green;…

UI行业发展预测 系列规划的调整

我又双叒叕拖更了&#xff0c;上一篇还是1月22号更新的&#xff0c;这都3月9号了……前面几期把职业规划、能力分析、几个分析用的设计理论都写完了&#xff0c;当然实际工作中用到的方法论不止上面这些&#xff0c;后续会接着学习&#xff1b;如果你的目标是一线团队&#xff…

出现Press ENTER or type command to continue的原因

cd 然后 vim .vimrc 写入 set nu 保存 退出转载于:https://www.cnblogs.com/520qtf/p/8968441.html

基于Flask实现后台权限管理系统 - 导言

网上有这样一个段子&#xff0c;在评论语言好坏的时候&#xff0c;都会有人评论说PHP是世界上最好的语言&#xff0c;人生苦短我用Python&#xff0c;这里姑且不去评论语言的好坏&#xff0c;每一个语言存在都有它的价值&#xff0c;譬如C语言适合底层开发&#xff0c;整个Linu…

5-1 unittest框架使用

unittest是python的一个单元测试框架&#xff0c;内置的&#xff0c;不需要pip install 什么什么的。直接在py文件里面调用 import unittest。 他这个框架是怎么回事呢&#xff0c;他可以对数据初始化&#xff0c;然后执行测试&#xff08;里面有断言功能就是判断返回是否正确…