子矩阵和求激光炸弹

2023-11-01

题目描述

地图上有 N 个目标,用整数 Xi,Yi表示目标在地图上的位置,每个目标都有一个价值 Wi。

注意:不同目标可能在同一位置。

现在有一种新型的激光炸弹,可以摧毁一个包含 R×R 个位置的正方形内的所有目标。

激光炸弹的投放是通过卫星定位的,但其有一个缺点,就是其爆炸范围,即那个正方形的边必须和 x,y轴平行。

求一颗炸弹最多能炸掉地图上总价值为多少的目标。

输入格式

第一行输入正整数 N 和 R,分别代表地图上的目标数目和正方形包含的横纵位置数量,数据用空格隔开。

接下来 N 行,每行输入一组数据,每组数据包括三个整数 Xi,Yi,Wi分别代表目标的 x坐标,y坐标和价值,数据用空格隔开。

输出格式

输出一个正整数,代表一颗炸弹最多能炸掉地图上目标的总价值数目。

数据范围

0≤R≤1e9
0<N≤10000
0≤Xi,Yi≤5000
0≤Wi≤1000aa

输入样例:

2 1
0 0 1
1 1 1

输出样例:

1
 题目分析

1.不同目标可能在同一位置。--》说明每个点可能要加不止一个值

因此在输入的时候要注意是用“+=”;

2.输入的x,y的范围包括零,但是我们求解前缀和一般下标是从1开始,所以输入的x,y要向右,向下偏移;

代码如下:

for(int i=1;i<=n;i++){
        int x,y,w;
        cin>>x>>y>>w;
        s[++x][++y]+=w;
    }

3.可以摧毁一个包含 R×R 个位置的正方形内的所有目标--》不包括边界,而我们求得的子矩阵和一般是包括边界的,下图可以说明:

为了处理这种情况,我们对子矩阵偏移0.5个长度单位相当于下图:

 我们在计算子矩阵和常规情况下是 n*m ,但是在题目条件的约束下得到的是相当于(n-1)*(m-1)子矩阵的和,也就是图中彩色框代表的子矩阵和。

代码如下:

int res=0;
    for(int i=r;i<=max_x;i++){
        for(int j=r;j<=max_y;j++){
            res=max(res,s[i][j]-s[i-r][j]-s[i][j-r]+s[i-r][j-r]);
        }
    }

总代码如下:

#include<iostream>
using namespace std;
const int N =5007;
int s[N][N];
int main(){
    int n,r;
    cin>>n>>r;
    int max_x=0;
    int max_y=0;
    r=min(r,5001);//有 x,y的数据范围在,正方形的边长就会被控制在r以内,由于向右偏移1,所以是5000+1;
    max_x=max_y=r;
    for(int i=0;i<n;i++){
        int x,y,w;
        cin>>x>>y>>w;
        s[++x][++y]+=w;
        max_x=max(x,max_x);
        max_y=max(max_y,y);
    }
    for(int i=1;i<=max_x;i++){
        for(int j=1;j<=max_y;j++){
            s[i][j]+=s[i-1][j]+s[i][j-1]-s[i-1][j-1];
        }
    }
    int res=0;
    for(int i=r;i<=max_x;i++){
        for(int j=r;j<=max_y;j++){
            res=max(res,s[i][j]-s[i-r][j]-s[i][j-r]+s[i-r][j-r]);
        }
    }
    cout<<res<<endl;
    
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

子矩阵和求激光炸弹 的相关文章

  • 我如何才能等待多个事情

    我正在使用 C 11 和 stl 线程编写一个线程安全队列 WaitAndPop 方法当前如下所示 我希望能够将一些内容传递给 WaitAndPop 来指示调用线程是否已被要求停止 如果 WaitAndPop 等待并返回队列的元素 则应返回
  • 按成员序列化

    我已经实现了template
  • 在结构中使用 typedef 枚举并避免类型混合警告

    我正在使用 C99 我的编译器是 IAR Embedded workbench 但我认为这个问题对于其他一些编译器也有效 我有一个 typedef 枚举 其中包含一些项目 并且我向该新类型的结构添加了一个元素 typedef enum fo
  • ASP.NET MVC:这个业务逻辑应该放在哪里?

    我正在开发我的第一个真正的 MVC 应用程序 并尝试遵循一般的 OOP 最佳实践 我正在将控制器中的一些简单业务逻辑重构到我的域模型中 我最近一直在阅读一些内容 很明显我应该将逻辑放在域模型实体类中的某个位置 以避免出现 贫血域模型 反模式
  • BitTorrent 追踪器宣布问题

    我花了一点业余时间编写 BitTorrent 客户端 主要是出于好奇 但部分是出于提高我的 C 技能的愿望 我一直在使用理论维基 http wiki theory org BitTorrentSpecification作为我的向导 我已经建
  • OleDbDataAdapter 未填充所有行

    嘿 我正在使用 DataAdapter 读取 Excel 文件并用该数据填充数据表 这是我的查询和连接字符串 private string Query SELECT FROM Sheet1 private string ConnectStr
  • Clang 3.1 + libc++ 编译错误

    我已经构建并安装了 在前缀下 alt LLVM Clang trunk 2012 年 4 月 23 日 在 Ubuntu 12 04 上成功使用 GCC 4 6 然后使用此 Clang 构建的 libc 当我想使用它时我必须同时提供 lc
  • WCF 中 SOAP 消息的数字签名

    我在 4 0 中有一个 WCF 服务 我需要向 SOAP 响应添加数字签名 我不太确定实际上应该如何完成 我相信响应应该类似于下面的链接中显示的内容 https spaces internet2 edu display ISWG Signe
  • 如何设计以 char* 指针作为类成员变量的类?

    首先我想介绍一下我的情况 我写了一些类 将 char 指针作为私有类成员 而且这个项目有 GUI 所以当单击按钮时 某些函数可能会执行多次 这些类是设计的单班在项目中 但是其中的某些函数可以执行多次 然后我发现我的项目存在内存泄漏 所以我想
  • 转发声明和包含

    在使用库时 无论是我自己的还是外部的 都有很多带有前向声明的类 根据情况 相同的类也包含在内 当我使用某个类时 我需要知道该类使用的某些对象是前向声明的还是 include d 原因是我想知道是否应该包含两个标题还是只包含一个标题 现在我知
  • 如何在 C 中调用采用匿名结构的函数?

    如何在 C 中调用采用匿名结构的函数 比如这个函数 void func struct int x p printf i n p x 当提供原型的函数声明在范围内时 调用该函数的参数必须具有与原型中声明的类型兼容的类型 其中 兼容 具有标准定
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • 链接器错误:已定义

    我尝试在 Microsoft Visual Studio 2012 中编译我的 Visual C 项目 使用 MFC 但出现以下错误 error LNK2005 void cdecl operator new unsigned int 2
  • WPF/C# 将自定义对象列表数据绑定到列表框?

    我在将自定义对象列表的数据绑定到ListBox in WPF 这是自定义对象 public class FileItem public string Name get set public string Path get set 这是列表
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • 将控制台重定向到 .NET 程序中的字符串

    如何重定向写入控制台的任何内容以写入字符串 对于您自己的流程 Console SetOut http msdn microsoft com en us library system console setout aspx并将其重定向到构建在
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • 基于 OpenCV 边缘的物体检测 C++

    我有一个应用程序 我必须检测场景中某些项目的存在 这些项目可以旋转并稍微缩放 更大或更小 我尝试过使用关键点检测器 但它们不够快且不够准确 因此 我决定首先使用 Canny 或更快的边缘检测算法 检测模板和搜索区域中的边缘 然后匹配边缘以查
  • IEnumreable 动态和 lambda

    我想在 a 上使用 lambda 表达式IEnumerable
  • 哪种 C 数据类型可以表示 40 位二进制数?

    我需要表示一个40位的二进制数 应该使用哪种 C 数据类型来处理这个问题 如果您使用的是 C99 或 C11 兼容编译器 则使用int least64 t以获得最大的兼容性 或者 如果您想要无符号类型 uint least64 t 这些都定

随机推荐

  • PowerShell脚本文件无法加载运行

    显示Restricted 不允许执行任何脚本 Get ExecutionPolicy RemoteSigned 可执行任何脚本 需要管理员权限 才能设置成功 Set ExecutionPolicy RemoteSigned
  • Centos 7 配置IP地址时network 和networkmanager冲突

    一 区别 1 network service的制御网络接口配置信息改动后 网络服务必须从新启动 来激活网络新配置的使得配置生效 这部分操作和从新启动系统时时一样的作用 制御 控制 是 etc init d network这个文件 可以用这个
  • 2.4.1 用NPOI操作EXCEL--画线

    之所有说NPOI强大 是因为常用的Excel操作她都可以通过编程的方式完成 这节开始 我们开始学习NPOI的画图功能 先从最简单的开始 画一条直线 对应的代码为 HSSFSheet sheet1 hssfworkbook CreateShe
  • android中完全退出当前应用程序的四种方法

    Android程序有很多Activity 比如说主窗口A 调用了子窗口B 如果在B中直接finish 接下里显示的是A 在B中如何关闭整个Android应用程序呢 本人总结了几种比较简单的实现方法 1 Dalvik VM的本地方法 andr
  • toFixed精度丢失问题

    bug说明 10 3950 3935 00 用toFixed 2 得到的是40904 32 实际应该是40904 33 解决的方法 第一种 在main js中直接复制下面代码即可 Number prototype toFixed funct
  • 【9秒原创】cocos2d-x横版rts手游《口袋仙侠》alpha1.0正式开源

    9秒原创 Firefly cocos2d x的横版rts手机网游 口袋仙侠 alpha V1 0 商用版本 完整源码下载 特别声明 1 口袋仙侠 项目基于MIT协议 9秒社团团队允许任何厂商及个人对其进行修改和商用 并将会在本板块内进行技术
  • Linux NetworkManager网络服务详解

    一 网络配置文件 Linux 为 配 置 网 络 提 供 了 许 多 工 具 其 中 有 图 形 界 面 的 如 NetworkManager 也有伪图形界面 如 system config network 的 虽然使用这些工具来配置网络会
  • iSH使用与优化全网整合教程【持续更新】【精华】

    最后一次更新 2023 4 22 请勿利用文章内的相关技术从事非法测试 由于传播 利用此文所提供的信息而造成的任何直接或者间接的后果及损失 均由使用者本人负责 作者不为此承担任何责任 iSH介绍与换源 已安装并已完成换源的用户可直接跳过 介
  • Deep Java Library(六)DJLServing自定义模型,自定义Translator注意事项

    DJLServing自定义模型中自定义Translator注意事项需要仔细读一下DJLServing源码中的ServingTranslatorFactory类 一开始不了解以为DJLServing选择Translator像玄学 后来看了像迷
  • C语言常见笔试题——strcpy函数的实现

    转载地址 http blog csdn net gpengtao article details 7464061 大家一般认为名不见经传strcpy函数实现不是很难 流行的strcpy函数写法是 cpp view plain copy ch
  • Java电子招投标采购系统源码-适合于招标代理、政府采购、企业采购、等业务的企业

    功能描述 1 门户管理 所有用户可在门户页面查看所有的公告信息及相关的通知信息 主要板块包含 招标公告 非招标公告 系统通知 政策法规 2 立项管理 企业用户可对需要采购的项目进行立项申请 并提交审批 查看所有的立项信息 主要功能包含 招标
  • 用java做一个登录界面

    这篇文章教大家做一个简单的登录界面 方法如下 1 界面由三个部分组成 可视化部分 窗体 按钮 输入框 标签 元素规则部分 尺寸 颜色 字体 布局管理器 内容部分 字符串 图片 2 界面开发包 1 java awt Abstract Wind
  • C++基础之注释

    文章目录 前言 一 注释的语法 二 注意 三 优美的注释 四 总结 前言 注释在程序编写中很重要 一个良好的注释在编写注释时更重要 一 注释的语法 注释有两种风格的语法 c风格或者说 多行 注释 只是一个c风格的注释 或者说是多行注释 c
  • pytest 之skip 跳过某条测试用例执行

    前言 相信大家对于pytest 框架官方介绍的那几种跳过用例执行的方法都熟悉并且能够运用在自己的项目中了 但是设想有下面一种场景 使用pytest 框架编写了一个接口的自动化测试 请求体使用了 pytest mark parametrize
  • idea社区版已经足够强大了

    idea使用企业版还是社区版 社区版不支持的功能 Profiling tools JVM性能分析工具 类似的工具有很多 Spring 微服务开发时没有Servers标签 yaml配置文件不能提前校验 除此以外没啥感觉 JavaEE Micr
  • stm32初学笔记(一)真·入门笔记

    最近在学习stm32 看的是野火的 b站就有视频 此博客记录我在学习中的重点与困惑 笔者不是第一次学习嵌入式 之前学过51 知道嵌入式的门槛 此文章旨在解决真正零基础的人的疑问 所以写的很详细 每一个视频我都看了两遍以上 尽可能的列举了我在
  • 外观检验人员一致性(Kappa)分析

    系列文章目录 文章目录 系列文章目录 前言 一 目的 二 分析方法 三 判定方法 四 评价流程 1 实验设计及实施 五 结果分析 分析一 检验员自身一致性 重复性 分析二 每个检验员与标准之间一致性 分析三 检验员之间 再现性 分析四 所有
  • 航班订票功能的简要实现

    实现航班订票功能与WebService实现身份证验证 一 系统模块分析 a 普通用户 b 管理员 二 UML建模示例 1 航班管理系统UML类图表示 2 航班管理系统UML用例图表示 3 航班管理系统UML时序图表示 三 设计模式分析 1
  • Android 11 「外部存储」权限适配方案——权限申请框架推荐

    文章目录 1 权限种类 1 1权限种类区分 普通权限 危险权限 特殊权限 1 2存储权限 变化 2 外部存储和内部存储对比 2 1外部存储在手机哪个位置 2 2外部存储和内部存储的访问权限区别 3 外部存储适配方案 3 1 Android
  • 子矩阵和求激光炸弹

    题目描述 地图上有 N 个目标 用整数 Xi Yi表示目标在地图上的位置 每个目标都有一个价值 Wi 注意 不同目标可能在同一位置 现在有一种新型的激光炸弹 可以摧毁一个包含 R R 个位置的正方形内的所有目标 激光炸弹的投放是通过卫星定位