蓝桥杯好题推荐---激光炸弹

ops/2025/3/17 23:48:06/

🌈个人主页:羽晨同学 

💫个人格言:“成为自己未来的主人~” 

题目链接

P2280 [HNOI2003] 激光炸弹 - 洛谷https://www.luogu.com.cn/problem/P2280

 解题思路

在这道题目当中,我们使用的是二维前缀和数组的思想,我们首先可以常见一个二维前缀和数组和一个存放价值的数组。

#include <iostream>
using namespace std;
const int N = 5e3+10;
int f[N][N];//前缀和存放数组 
int a[N][N];

然后,我们先对这个价值数组进行处理,由于后面使用的时候,我们是从(1,1)开始的,所以,我们统一把坐标往右下移动一位。

	int n,m;cin>>n>>m;//先把数据存放到价值的数组中 for(int i=1;i<=n;i++){int x,y,v;cin>>x>>y>>v;x++; y++;//使得下标从(1,1)开始 a[x][y]+=v;}

此外,这里还有一个特别需要注意的点,就是题目中所同一个位置可能存放多个价值,所以,我们在进行价值处理的时候,应使用的是。

a[x][y]+=v;

然后,我们构建二维前缀和数组。

	n = 5005;//确保可以找到全部的元素for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){f[i][j]=f[i-1][j]+f[i][j-1]-f[i-1][j-1]+a[i][j]; }}

我们这里设置的将所有的数组的元素都包含在内。

然后,我们对每个边长的这个正方形进行遍历,确保它走过了所有的元素,然后获取最大值。

	//遍历int ret = 0;m =min(m,n);for(int x2=m;x2<=n;x2++){for(int y2=m;y2<=n;y2++){int x1 = x2-m+1; int y1 = y2-m+1;ret = max(ret,f[x2][y2]-f[x1-1][y2]-f[x2][y1-1]+f[x1-1][y1-1]);}}

在这个之前,我们需要将m设置为m何n的最小值,因为这个正方形的边长是可能大于这个整个数组的长度的。

代码解决

#include <iostream>
using namespace std;
const int N = 5e3+10;
int f[N][N];//前缀和存放数组 
int a[N][N];
int main()
{int n,m;cin>>n>>m;//先把数据存放到价值的数组中 for(int i=1;i<=n;i++){int x,y,v;cin>>x>>y>>v;x++; y++;//使得下标从(1,1)开始 a[x][y]+=v;}//构建二维前缀和数组 n = 5005;//确保可以找到全部的元素for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){f[i][j]=f[i-1][j]+f[i][j-1]-f[i-1][j-1]+a[i][j]; }}//遍历int ret = 0;m =min(m,n);for(int x2=m;x2<=n;x2++){for(int y2=m;y2<=n;y2++){int x1 = x2-m+1; int y1 = y2-m+1;ret = max(ret,f[x2][y2]-f[x1-1][y2]-f[x2][y1-1]+f[x1-1][y1-1]);}}cout<<ret<<endl;	 return 0;
}

 好了,今天的内容就到这里,我们明天再见。 


http://www.ppmy.cn/ops/166643.html

相关文章

Python自动点击器开发教程 - 支持键盘连按和鼠标连点

Python自动点击器开发教程 - 支持键盘连按和鼠标连点 这里写目录标题 Python自动点击器开发教程 - 支持键盘连按和鼠标连点项目介绍开发环境安装依赖核心代码解析1. 键盘模拟实现2. 鼠标点击实现 开发要点使用说明注意事项优化建议打包发布项目源码开发心得参考资料成品工具 项…

list及其模拟实现

list其实就是一个带头双向链表 1 迭代器 按功能分iteratorreverse_iteratorconst_iteratorconst_reverse_iterator 按性质分支持结构支持操作单向forward_list/unordered_map双向list/map/set/--随机vector/string/deque / -- / / - 按性质分&#xff0c;决定可以使用那些算…

华为重拳出击!华为重拳出击!华为重拳出击!

大家好&#xff0c;我是小程程。 华为出了一个大瓜哦&#xff01; 华为多名产品线负责人被开除 据财新网 3 月 10 日报道&#xff0c;华为最近发了一则内部通报&#xff1a; 华为称&#xff0c;经审计发现&#xff0c;&#xff08;ICT 产品与解决方案&#xff0c;半导体业务部、…

上下文学习思维链COTPrompt工程

一、上下文学习 上下文学习强调在学习过程中考虑问题所处的上下文环境。 1.1 上下文学习的分类 零样本&#xff08;Zero-Shot&#xff09;上下文学习单样本&#xff08;One-Shot&#xff09;上下文学习少样本&#xff08;Few-Shot&#xff09;上下文学习 1.2 示例选择方法 …

IP风险度自检,互联网的安全“指南针”

IP地址就像我们的网络“身份证”&#xff0c;而IP风险度则是衡量这个“身份证”安全性的重要指标。它关乎着我们的隐私保护、账号安全以及网络体验&#xff0c;今天就让我们一起深入了解一下IP风险度。 什么是IP风险度 IP风险度是指一个IP地址可能暴露用户真实身份或被网络平台…

git证书文件路径错误

有次移动了git目录&#xff0c;在push代码时报了个以上的错误&#xff0c;以上错误告诉我们证书路径错误&#xff0c;这时需要修改路径 先查看原来证书路径 win R打开命令提示符&#xff0c;输入一下命令查看&#xff1a; git config --global -l无论是否显示了该路径&#…

InternVL:论文阅读 -- 多模态大模型(视觉语言模型)

更多内容&#xff1a;XiaoJ的知识星球 文章目录 InternVL: 扩展视觉基础模型与通用视觉语言任务对齐1.概述2.InternVL整体架构1&#xff09;大型视觉编码器&#xff1a;InternViT-6B2&#xff09;语言中间件&#xff1a;QLLaMA。3&#xff09;训练策略&#xff08;1&#xff09…

如何用AI轻松制作高效又专业的PPT演示文稿

如何用AI轻松制作高效又专业的PPT演示文稿&#xff01;在快节奏的工作环境中&#xff0c;PPT已经成为我们表达想法、展示项目的重要工具。无论是在会议、讲座&#xff0c;还是客户汇报中&#xff0c;PPT都能起到至关重要的作用。可制作一个既精美又高效的PPT&#xff0c;却是一…