备战蓝桥杯:二维前缀和之激光炸弹

news/2025/2/8 14:01:44 标签: 算法

由于xi yi在0到5000之间,我们之前学的前缀和模板都是从下标1开始,我们就把x和y各自加1就好了,也就是在1到5001之间了,题目又说了,同一位置可能有多个目标,所以我们在一个位置求价值的时候应该用加等来求和

我们回顾一下之前构建前缀和数组的公式

公式应该是f[i][j]=f[i-1][j]+f[i][j-1]-f[i-1][j-1]+a[i][j]

之后我们要求炸毁的最大价值,就要枚举出所有变成为m的正方形,于是乎我们就可以从m,m这个坐标开始依次往后枚举,每次枚举的坐标是x2,y2  那么左上角的坐标就应该是 x2-m+1,y2-m+1

再结合我们之前学的求两点之间的矩形面积的公式

D=U-(A+B)-(A+C)+A 也就是D = f[x2][y2]-f[x1-1][y2]-f[x2][y1-1]+f[x1-1][y1-1]

好了,我们直接来写代码吧

#include <iostream>
using namespace std;
const int N = 5010;
int n, m;
typedef long long LL;
int a[N][N];
int f[N][N];

int main()
{
	cin >> n >> m;
	for (int i = 1; i <= n; i++)
	{
		int x, y, v; cin >> x >> y >> v;
		x++, y++;
		a[x][y] += v;
	}

	n = 5001;
	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;
	for (int x2 = m; x2 <= n; x2++)
	{
		for (int y2 = m; y2 <= n; y2++)
		{
			int x1 = x2 - m + 1, 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.niftyadmin.cn/n/5844928.html

相关文章

makefile 的strip,filter,ifeq,ifneq基础使用

目录 一、strip1.1 语法1.2 示例1.3 使用场景 二、filter2.1 语法2.2 示例2.3 使用 * 和 ? 通配符2.4 结合使用2.5 使用场景 三、ifeq 和 ifneq3.1 ifeq3.1.1 语法3.1.2 示例 3.2 ifneq3.2.1 语法3.2.2 示例 3.3 典型使用场景3.3.1 根据版本控制编译选项:3.3.2 选择不同的源文…

关于 SQL 内连接、外连接(左连接、右连接)的面试题

一、概念理解类 1. 请详细解释内连接&#xff08;INNER JOIN&#xff09;、左连接&#xff08;LEFT JOIN&#xff09;、右连接&#xff08;RIGHT JOIN&#xff09;在 SQL 中的概念和区别&#xff0c;并分别举例说明它们在实际查询场景中的应用。 在SQL中&#xff0c;内连接&a…

Vue:Table合并行于列

<template><div><el-table:data"tableData":span-method"mergeCells"style"width: 100%"><el-table-columnprop"date"label"日期"width"180"></el-table-column><el-table-colu…

Flutter List 的 every 如果回调函数抛出异常 应该如何处理

在使用 List 的 every 方法时&#xff0c;如果回调函数抛出异常&#xff0c;可以通过以下几种方式进行处理&#xff1a; 1. 在回调函数内部捕获异常 在回调函数内部使用 try-catch 语句捕获可能抛出的异常&#xff0c;并根据具体情况进行处理。这样可以避免异常直接导致 ever…

DeepSeek和ChatGPT的优劣或者区别(答案来DeepSeek和ChatGPT)

DeepSeek的答案 DeepSeek与ChatGPT作为当前两大主流AI模型&#xff0c;在架构设计、性能表现、应用场景等方面存在显著差异&#xff0c;以下从多个维度进行对比分析&#xff1a; 一、架构与训练效率 架构设计 DeepSeek&#xff1a;采用混合专家&#xff08;MoE&#xff09;框架…

SpringBoot中的多环境配置管理

SpringBoot中的多环境配置管理 文章目录 SpringBoot中的多环境配置管理SpringBoot中的多环境配置管理 多环境配置的概述1. 为什么需要多环境配置&#xff1f;2. Spring Boot 中如何实现多环境配置&#xff1f;3. 多环境配置的应用场景4. 如何实现配置隔离&#xff1f; Spring B…

CEF132 编译指南 Windows 篇 - 拉取 CEF 源码 (五)

1. 引言 获取 CEF 132 源码是开始编译工作的前提和关键步骤。在完成 depot_tools 的安装和配置后&#xff0c;我们需要通过正确的方式下载和同步 CEF 的源代码。由于 CEF 项目依赖于 Chromium 的大量组件&#xff0c;因此源码的获取过程需要特别注意同步策略和版本管理&#x…

MySQL数据库(五)索引

一 索引概述 1 介绍&#xff1a;MySQL索引是一种有序数据结构&#xff0c;它能够高效帮助数据库系统快速定位到表中的特定记录&#xff0c;从而显著提高查询效率。索引可以被看作是书的目录&#xff0c;通过它可以迅速找到所需的信息而不需要逐页翻阅整本书。 2 优缺点 二 索…