(枚举)(模拟)(二位前缀和)99. 激光炸弹
目录
题目链接
一些话
切入点
流程
套路
ac代码
题目链接
99. 激光炸弹 - AcWing题库
数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字
数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字
一些话
~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!
切入点
现在有一种新型的激光炸弹,可以摧毁一个包含 R×R 个位置的正方形内的所有目标。
激光炸弹的投放是通过卫星定位的,但其有一个缺点,就是其爆炸范围,即那个正方形的边必须和 x,y 轴平行。
求一颗炸弹最多能炸掉地图上总价值为多少的目标。
1. 求一个矩阵内值的总和,符合二维前缀和的前提条件
2.求符合条件情况的最值,符合枚举的特征
3.写法复杂,条件多,符合模拟的特征
数据范围
0≤R≤1e9
0<N≤10000
0≤Xi,Yi≤5000
0≤Wi≤1000
1. xi,yi<5e3,可能用到双循环枚举
二维数组
流程
1.模拟题,列出伪代码
1.1读题得条件
地图上有 N 个目标,用整数 Xi,Yi, 表示目标在地图上的位置,每个目标都有一个价值 Wi。
注意:不同目标可能在同一位置。
不能直接用cin读值,要先用一个变量储存后再加入这个坐标对应的二维数组里
现在有一种新型的激光炸弹,可以摧毁一个包含 R×R 个位置的正方形内的所有目标。
激光炸弹的投放是通过卫星定位的,但其有一个缺点,就是其爆炸范围,即那个正方形的边必须和 x,y, 轴平行。
可以枚举一个坐标然后直接运算表示矩阵
1.2伪代码:枚举部分
1.2.1确定要枚举什么,如何缩小范围
1.题目要求一个与xy轴平行的矩阵值的总和最值,所以要枚举这个矩阵,矩阵边长是确定的,可以通过枚举一个顶点来表示整个矩阵,用二维前缀和求矩阵总和,只要枚举左上角的顶点然后通过坐标运算就可以表示出右下角的顶点
2.枚举边界超过最大的x,y,r时没有意义,所以只要取x,r,y,r的最大值即可
3.r的范围到1e9,但是x,y最大只有5e3,超过5e3的部分可以直接舍弃,r取5e3+1和r的最小值即可,在确认n,m前进行
1.2.3数据读入部分
题目x,y从0开始,因为要用前缀和,前缀和里有减1的操作,所以读入的坐标要先++才能用
w储存读入的值,然后加入到二维数组
1.2.2前缀和部分
双循环预处理前缀和数组,然后用枚举的坐标查询前缀和,与maxn比较
2.核验数据范围,
1.5e3可以开一个二维数组,
2.答案最多是n*w = 1e7,不用开long long
套路
1.相距为r的坐标的运算
相距为r的两个点a(x1,y1),b(x2,y2)
x2 = x1 + r - 1;
y2 = x2 + r - 1;
2.二维前缀和
//预处理
for(int i = 1;i <= n;i++){for(int j = 1;j <= n;j++){s[i][j] += s[i-1][j] + s[i][j-1] - s[i-1][j-1];}
}
// 查询左上角坐标(x1,y1),右上角坐标(x2,y2)
int res;
res = s[x1][y1] - s[x1-1][y2] - s[x2][y1-1] + s[x1-1][y1-1];
ac代码
// 12:31 - 12 : 41
// 21:39 ~21:42
// 14:45~15:03
// 不能用cin读值,要加等于,x,y+r太大时变小,找最大x,y,r来确定边界
// 枚举左上角得右下角,输出前缀和#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
using namespace std;
const int N = 5e3 + 10;
int n,m,r;
int s[N][N];//5e3+10级别的二维数组开不了longlong,只能开一个数组
int maxn = -0x3f3f3f3f;
int main(){int t;cin >> t >> r;r = min(5001,r);//双循环的最大值,因为要枚举坐标,所以边界不能太大n = m = r;while(t--){int x,y,w;scanf("%d%d%d",&x,&y,&w);x++,y++;s[x][y] += w;n = max(x,n);m = max(y,m);}for(int i = 1;i <= n;i++){for(int j = 1;j <= m;j++){s[i][j] += s[i][j-1] + s[i-1][j] - s[i-1][j-1];}}for(int i = 1;i + r - 1 <= n;i++){for(int j = 1;j + r - 1<= m;j++){maxn = max(maxn,s[i+r-1][j+r-1] - s[i+r-1][j-1] - s[i-1][j+r-1] + s[i-1][j-1]);}}cout << maxn << endl;return 0;
}
我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字~
相关文章:
(枚举)(模拟)(二位前缀和)99. 激光炸弹
目录 题目链接 一些话 切入点 流程 套路 ac代码 题目链接 99. 激光炸弹 - AcWing题库 数~啦!我草,又~在~水~字~数~啦!我草,又~在~水~字&am…...
vue3+vite项目移动端适配:postcss-pxtorem和amfe-flexible
一,定义 postcss-pxtorem PostCSS 的一个插件,可以从像素单位生成 rem 单位。 amfe-flexible amfe-flexible是配置可伸缩布局方案,主要是将1rem设为viewWidth/10。 二,使用 1. 设置 viewport 在 index.html 中: &l…...
sin x和cos x的导数
我们都知道(sinx)′cosx(\sin x)\cos x(sinx)′cosx,(cosx)′−sinx(\cos x)-\sin x(cosx)′−sinx,但是为什么呢? sinx\sin xsinx的导数 (sinx)′limΔx→0sin(xΔx)−sinxΔx(\sin x)\lim\limits_{\Delta x\rightarrow 0…...
html下自动消失的提示框jQuery实现
引言 最近在找一个可以自动消失的提示框,找来找去,找到了这个:提示框设置_html页面提示框等待一定时间消失博主写得很好,可以直接复制运行出来,我也从中得以受益。本篇文章对这篇博客的代码做了一些小的更新ÿ…...
第27篇:Java日期处理总结(一)
目录 1、Date类 1.1 如何实例化Date对象 1.2 Date相关操作方法 1.3 如何获取当前日期...
Linux入门教程——VI/VIM 编辑器
前言 本文小新为大家带来 Linux入门教程——VI/VIM 编辑器 相关知识,具体内容包括VI/VIM是什么,VIM的三种工作模式介绍,包括:一般模式,编辑模式,指令模式,以及模式间转换等进行详尽介绍~ 不积跬…...
第十四届蓝桥杯三月真题刷题训练——第 10 天
目录 第 1 题:裁纸刀 问题描述 运行限制 代码: 第 2 题:刷题统计 问题描述 输入格式 输出格式 样例输入 样例输出 评测用例规模与约定 运行限制 代码: 第 3 题:修建灌木 问题描述 输入格式 输出格式 …...
软件测试之jira
Jira 1. Jira 概述 JIRA 是澳大利亚 Atlassian 公司开发的一款优秀的问题跟踪管理软件工具,可以对各种类型的问题进行跟踪管理,包括缺陷、任务、需求、改进等。JIRA采用J2EE技术,能够跨平台部署。它正被广泛的开源软件组织,以及…...
传统方式实现SpringMVC
一、初次尝试SpringMVC 1.1、在pom.xml中添加依赖 <dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.2.6.RELEASE</version></dependency><dependency><grou…...
RS232/RS485信号接口转12路模拟信号 隔离D/A转换器LED智能调光控制
特点:● RS-485/232接口,隔离转换成12路标准模拟信号输出● 可选型输出4-20mA或0-10V控制其他设备● 模拟信号输出精度优于 0.2%● 可以程控校准模块输出精度● 信号输出 / 通讯接口之间隔离耐压3000VDC ● 宽电源供电范围:10 ~ 30VDC● 可靠…...
聊一聊代码重构——封装集合和替换算法的代码实践
代码重构相关内容 聊一聊代码重构——我们为什么要代码重构 聊一聊代码重构——代码中究竟存在哪些坏代码 聊一聊代码重构——关于变量的代码实践 聊一聊代码重构——关于循环逻辑的代码实践 聊一聊代码重构——关于条件表达式的代码实践 聊一聊代码重构——程序方法上的…...
FPGA解码4K分辨率4line MIPI视频 OV13850采集 提供工程源码和技术支持
目录1、前言2、Xilinx官方主推的MIPI解码方案3、纯Vhdl方案解码MIPI4、vivado工程介绍5、上板调试验证6、福利:工程代码的获取1、前言 FPGA图像采集领域目前协议最复杂、技术难度最高的应该就是MIPI协议了,MIPI解码难度之高,令无数英雄竞折腰…...
Map接口及遍历方式
1、Map接口实现类的特点1)Map与Collection并列存在。用于保存具有映射关系的数据:Key-Value(无序)2) Map中的key和value可以是任何引用类型的数据,会封装到HashMap$Node对象中3) Map 中的key不允许重复import java.util.HashMap; import java…...
一步步构建自己的前端项目
一、我们先把webpack走通 1、先安装相关依赖,webpack是用来处理命令行参数的,但是我不准备使用webpack-cli,但是还是要求必须安装webpack-cli npm install webapck webpack-cli --save-dev2、npm init -y 3、创建项目结构 build.js cons…...
VMware搭建Mac OS环境
推荐阅读 Proxifier逆向分析(Mac) MacOS Burp2021安装配置 突破iOS App双向认证抓包 App绕过iOS手机的越狱检测 iOS系统抓包入门实践之短链 各种学习环境更新MacOS虚拟机 Android和iOS静态代码扫描工具 iOS系统抓包之短链-破解双向证书 Android和iOS应用源码的静态分析…...
【Maven】什么是Maven?Maven有什么用?
目录 一、什么是 Maven 二、Maven 能解决什么问题 三、Maven 的优势举例 四、Maven 的两个经典作用 4.1 Maven 的依赖管理 4. 2 项目的一键构建 💟 创作不易,不妨点赞💚评论❤️收藏💙一下 一、什么是 Maven Maven 的正确发…...
【JavaSE】类和对象的详解
前言: 大家好,我还是那个不会打拳的程序猿。今天我给大家讲解的是类和对象,相信大家在之前的学习中都是面向过程的思想,那么今天就让我们走向面向对象的世界吧。 目录 1.面向过程VS面向对象 1.1什么是面向过程 1.2什么是面向对…...
2023年中职组“网络安全”赛项广西自治区竞赛任务书
2023年中职组“网络安全”赛项 广西自治区竞赛任务书 一、竞赛时间 总计:360分钟 需求环境可私信博主!点个赞加三连吧! 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 A、B模块 A-1 登录安全加固 180分钟 200分 A-2…...
简单的自定义录屏工具
在csdn上写文章,需要配一些操作动态图,需要针对电脑录屏,可能是整个屏幕录屏,也可能是某窗口,甚至是某一小块区域。 动态图最好是gif格式,方便直接嵌入文章中。 一、设计 窗口类widget 切屏类Capturescr…...
数据结构与算法基础(王卓)(17):KMP算法详解(精讲(最简单、直接、有效的思路方法,答案以及代码原理)
本文具体思路参考: (最后证明,该教材/网课实际上是最有效的) DS第四章【3】KMP1_哔哩哔哩_bilibili 中间走的一些弯路的教材: 第06周05--第4章串、数组和广义表5-4.3串的操作--串的匹配算法2--KMP算法_哔哩哔哩_bi…...
用Python处理SEED-VIG脑电数据:从PERCLOS标签到EEG特征提取的完整流程
用Python处理SEED-VIG脑电数据:从PERCLOS标签到EEG特征提取的完整流程 在神经工程和驾驶安全研究中,SEED-VIG数据集因其高质量的多模态生理信号采集而备受关注。这个包含EEG、EOG和眼动追踪数据的资源,为疲劳检测算法开发提供了宝贵素材。本文…...
nli-distilroberta-base企业实操:政务问答系统中立性与矛盾识别模块
nli-distilroberta-base企业实操:政务问答系统中立性与矛盾识别模块 1. 项目概述 在政务问答系统开发中,准确判断用户提问与政策条文之间的关系至关重要。nli-distilroberta-base是基于DistilRoBERTa模型的自然语言推理(NLI)服务,专门用于分…...
ChatTTS 自定义样本实战:如何高效构建个性化语音合成模型
最近在做一个需要个性化语音合成的项目,用到了ChatTTS。说实话,直接拿官方流程走自定义样本训练,那个效率真是让人有点头疼。数据准备繁琐,训练时间长,出来的效果还不一定稳定。经过一番折腾和优化,总算总结…...
颠覆有线通信思维,程序让仪器自动搜索附近蓝牙设备,一键配对数据。
一、实际应用场景描述 在某高校《智能仪器与物联网》实验课中,学生需要采集如下数据: - 手持温湿度传感器 - 便携式振动/加速度采集模块 - 蓝牙电子秤 / 力传感器 传统做法: - 每台仪器一根 USB / RS232 线 - 接线混乱、移动受限 - 多人共…...
2D-循环卷积与2D-DFT关系
2D transforms doubly circulant block matrices and 2D circular convolution 图像技术经常处理2D信号,其经常通过2D卷积来处理各种类型的线性滤波。通信中的Delay-Doppler信道便是一个时变的2D高速移动信道,很适合处理2D信号。2D信号可以通过一个MNM\t…...
3步终极方案:Ruffle Flash模拟器性能优化完全指南
3步终极方案:Ruffle Flash模拟器性能优化完全指南 【免费下载链接】ruffle A Flash Player emulator written in Rust 项目地址: https://gitcode.com/GitHub_Trending/ru/ruffle Ruffle是一个基于Rust语言开发的Flash Player模拟器,专为现代浏览…...
微搭低代码MBA 培训管理系统实战 19——教务管理:从订单到课时卡的自动转化
目录前情回顾一、 数据源设计1.1 学员档案表 (MBA_StudentProfiles)1.2 课时卡表 (MBA_LearningCards)二 创建管理页面2.1 搭建财务布局2.2 搭建待支付列表页面2.3 搭建确认支付弹窗2.4 自动化开课三 配置门户数据最终效果总结前情回顾 上一篇中我们讲解了销售在订单成交后&am…...
FLUX.小红书极致真实V2实战应用:为小红书笔记自动生成封面+内页配图
FLUX.小红书极致真实V2实战应用:为小红书笔记自动生成封面内页配图 重要提示:本文介绍的FLUX.小红书极致真实V2工具为本地部署方案,无需网络连接,所有图像生成均在本地完成,确保数据隐私和安全。 1. 工具简介ÿ…...
用户样式管理新范式:Stylus如何重塑跨浏览器自定义体验
用户样式管理新范式:Stylus如何重塑跨浏览器自定义体验 【免费下载链接】stylus Stylus - Userstyles Manager 项目地址: https://gitcode.com/gh_mirrors/sty/stylus 在当今多浏览器并存的互联网生态中,用户面临着网页样式个性化的核心痛点&…...
嵌入式系统链接器脚本(ld文件)详解
嵌入式系统中的链接器脚本(ld文件)深度解析1. 链接器脚本概述链接器脚本(linker script)是控制链接过程的关键文件,通常以.lds作为文件后缀名。它主要规定了如何将输入文件中的section放入输出文件,并控制输出文件内各部分在程序地址空间中的布局。每个链…...
