利用前缀和处理激光炸弹问题

简介: 利用前缀和处理激光炸弹问题

激光炸弹

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

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

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

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

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


输入格式

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

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


输出格式

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

数据范围

0 ≤ R ≤ 109

0 < N ≤ 10000

0 ≤ Xi,Y i ≤ 5000

0 ≤ W i≤ 1000

输入样例:

2 1
0 0 1
1 1 1

输出样例:

1
#include<iostream>
using namespace std;
int s[5010][5010];
int n, r, m;
int main()
{
    int  cut;
    cin >> cut >> r;
    r = min(5001, r);      //避免r*r的范围大于坐标系的范围引起错误
    int i = 0, j = 0;
    n = m = r;           //n和m 可能小于r引发边界问题 还有一种方式:直接将n和m取最大值5010,省去了后面确定坐
    for (i = 0; i < cut; i++)                        //标系边界的麻烦,即第18行可以省略
    {
        int x, y, w;
        cin >> x >> y >> w;
        x++, y++;     //自加的作用是使得坐标从1开始
        s[x][y] += w;
        n = max(n, x), m = max(m, y);   //确定坐标系的边界
    }
    for (i = 1; i <= n; i++)
    {
        for (j = 1; j <= m; j++)
        {
            s[i][j] += s[i - 1][j] + s[i][j - 1] - s[i - 1][j - 1];   //前缀和用一个数组处理 节省空间
        }
    }
    int res = 0;
    for (i = r; i <= n; i++)     //注意:i,j 要以 r 作为起始位置
    {
        for (j = r; j <= m; j++)
        {
            int temp = s[i][j] - s[i - r][j] - s[i][j - r] + s[i - r][j - r];
            res = max(res, temp);
        }
    }
    cout << res << endl;
    return 0;
}
目录
相关文章
|
4月前
|
Oracle 关系型数据库 MySQL
MySQL 8.4安装教程 Windows版:解压+自定义路径+密码设置+命令行客户端快捷方式创建指南
MySQL 8.4 是Oracle推出的开源高性能关系型数据库,免费、可靠、标准化。本文详解其Windows下安装配置全流程:下载解压→自定义路径安装→图形向导配置root密码→创建命令行快捷方式并验证,一步到位,新手友好。(239字)
1184 9
|
5月前
|
机器学习/深度学习 算法 安全
基于PSO-ELM、GA-ELM、SSA-ELM、GA-SSA-ELM和ELM对比的多输入回归预测附Matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 🍎 往期回顾关注个人主页:Matlab科研工作室 👇 关注我领取海量matlab电子书和数学建模资料 🍊个人信条:格物致知,完整Matlab代码获取及仿真咨询内容私信。 🔥 内容介绍 一、研究背景与主题引入 随着工业4.0和大数据时代的到来,多输入回归预测在能源管理、金融分析、环境监测等领域的应用需求日益增长。传统回归模型(如线性回归、支持向量机)在处理高维非线性数据时存在计算效率低、泛化能力弱等问题。极限学习机(Extreme Le
181 1
|
NoSQL MongoDB 数据库
MongoDB 分页神器:limit() 和 skip() 方法详解
MongoDB 分页神器:limit() 和 skip() 方法详解
492 1
|
运维 前端开发 算法
阿里及各大企业中台架构详解(上)
阿里及各大企业中台架构详解
1879 0
阿里及各大企业中台架构详解(上)
|
负载均衡 关系型数据库 网络安全
Pgpool-II实现高可用+读写分离+负载均衡(二)---- 配置篇
Pgpool-II是一款工作在PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件。提供了连接池、复制、负载均衡、限制过多连接、看门狗、查询缓存等功能。本篇介绍详细配置。
|
SQL 存储 Java
Spring事务畅谈 —— 由浅入深彻底弄懂 @Transactional注解(2)
Spring事务畅谈 —— 由浅入深彻底弄懂 @Transactional注解
792 1
|
SQL 分布式计算 大数据
BigData:大数据开发的简介、核心知识(linux基础+Java/Python编程语言+Hadoop{HDFS、HBase、Hive}+Docker)、经典场景应用之详细攻略
BigData:大数据开发的简介、核心知识(linux基础+Java/Python编程语言+Hadoop{HDFS、HBase、Hive}+Docker)、经典场景应用之详细攻略
BigData:大数据开发的简介、核心知识(linux基础+Java/Python编程语言+Hadoop{HDFS、HBase、Hive}+Docker)、经典场景应用之详细攻略
|
应用服务中间件 文件存储 nginx
如何在Kubernetes集群动态使用 NAS 持久卷
介绍: 本文介绍的动态生成NAS存储卷的方案:在一个已有文件系统上,自动生成一个目录,这个目录定义为目标存储卷; 镜像地址:registry.cn-hangzhou.aliyuncs.com/acs/alicloud-nas-controller:v1.11.5.4-433631d-aliyun 默认生成资源:生成的PV名字为:pvc-${pvc-uid}生成目录的名字:namespace-pvcname-pvname 可以再pvc的annotations中如下声明,自定义名字:生成的pv、目录名字为下面定义的名字。
8485 0
登录、注册切换特效
在线演示       本地下载
960 0