炸弹 (boom.c)

炸弹 (boom.c)

时间限制: 800ms
内存限制: 256000KiB
进度: 57/12406 = 0.5%

题目描述

出题助教: Sakiyary
验题助教: Corax、XiEn、ErinwithBMQ、runz、MacGuffin、Bob

维多利亚的腐烂荒野上出现了 N 个魔物,你和小维需要抓紧时间调配炸弹对付它们。

荒野可以视为一张方格图,(x_i, y_i, h_p_i) 表示魔物 i 出现在方格 (xi​,yi​) 上,其生命值为整数 h_p_i。每个方格最多出现一个魔物。

你们可以调配炸弹的 爆炸范围 与 爆炸伤害 两个参数:

  • 爆炸范围 是一个任意位置、由方格作为单元组成的、任意大小的矩形,最小为 1×1 的方格;
  • 爆炸伤害 是一个整数值。

为了消灭爆炸范围内的所有魔物,爆炸伤害至少要等于该爆炸范围内魔物生命值的最大值。

假设炸弹 爆炸范围 的面积为 S,爆炸伤害为 D,则调配该炸弹所需要的材料量为 S×D。

为了抓紧时间并减少炸弹的总材料消耗,你们决定调配两个炸弹,将魔物划分为左右两批,两人各用一个炸弹对付其中一批,即两个炸弹的爆炸范围在 x 轴上的投影不重叠。

输入格式

输入共 N+1 行:

  • 第一行包含一个正整数,表示魔物的数量 N;
  • 接下来有 N 行,每行包含三个非负整数,以空格隔开,分别表示当前魔物 i 所处方格的 xi​ 坐标、yi​ 坐标以及魔物的生命值 hpi​。

输出格式

输出共一行,包含一个整数,为调配两个炸弹时所需的最小总材料量。

测试样例

InputOutput
5
0 3 1
0 1 2
5 1 3
1 2 4
4 3 554
5
0 2 9
4 1 1
2 3 1
2 0 1
2 1 10121

思路:

1.按x排序,寻找每一个分界线的最小总材料量。

2.注意!!这里的网格是平面直角坐标系的网格,不是二维数组,我这里卡了好久

3.此代码还是暴力分,还未更新,作者考完期末考再来更新

#include<iostream>
#include<algorithm>
using namespace std;
struct Node{
	int x;
	int y;
	int value;
};
int n;
int sum1,sum2;
const int L = 1e4+1;
Node arr[L];
int list[L];  
bool compare(Node a,Node b)
{
	return a.x < b.x;
}
int cntl(int x)//处理左半部分 
{
	int high = -1;
	int low = 1e9;
	int left,right;
	int S,D = -1;
	right = arr[x].x;//左半部分,靠最右边的边界 
	left = arr[1].x;//左半部分,靠最左边的边界
	for(int i = 1 ; i <= x ; i++)
	{
		high = max(high,arr[i].y);//找出高最大 
		low = min(low,arr[i].y);//找出底最小 
		D = max(D,arr[i].value);//找出D最大 
	}
	int len = right-left+1;
	int width = high - low+1;
	S = len*width;

	return S*D;
}
int cntr(int x)//处理右半部分 
{
	int high = -1;
	int low = 1e9;
	int left,right;
	int S,D = -1;
	right = arr[n].x;//右边部分,靠最右边的边界 
	left = arr[x].x;
	for(int i = x ; i <= n ; i++)
	{
		high = max(high,arr[i].y);//找出高最大 
		low = min(low,arr[i].y);//找出底最小 
		D = max(D,arr[i].value);//找出D最大
	}
	int len = right-left+1;
	int width = high - low+1;
	S = len*width;

	return S*D;
}
int main(void)
{

	cin >> n;
	for(int i = 1 ; i <= n ; i++)//为x排序 有1~n个怪物位置 
	{
		cin >> arr[i].x >> arr[i].y >> arr[i].value;
	}
	sort(arr+1,arr+1+n,compare);//按x大小排序1~n个

    int all = 1e9;
	for(int j = 1 ; j < n ; j++)//以x轴,第i个怪物,所以是x
	{
		if(arr[j].x == arr[j+1].x)
		continue;
		sum1 = cntl(j);//左半部分右闭 
		sum2 = cntr(j+1);//右半部分左开 
		all = min(all,sum1+sum2); 
	 } 
	 cout << all << endl;
	return 0;
 } 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/949935.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【计算机视觉】单目深度估计模型-Depth Anything-V2

概述 本篇将简单介绍Depth Anything V2单目深度估计模型&#xff0c;该模型旨在解决现有的深度估计模型在处理复杂场景、透明或反射物体时的性能限制。与前一代模型相比&#xff0c;V2版本通过采用合成图像训练、增加教师模型容量&#xff0c;并利用大规模伪标签现实数据进行学…

jenkins入门12-- 权限管理

Jenkins的权限管理 由于jenkins默认的权限管理体系不支持用户组或角色的配置&#xff0c;因此需要安装第三发插件来支持角色的配置&#xff0c;我们使用Role-based Authorization Strategy 插件 只有项目读权限 只有某个项目执行权限

【Microi吾码】开源力量赋能低代码创新,重塑软件开发生态格局

我的个人主页 文章专栏&#xff1a;Microi吾码 一、引言 在当今数字化浪潮汹涌澎湃的时代&#xff0c;软件开发的需求呈现出爆发式增长。企业为了在激烈的市场竞争中脱颖而出&#xff0c;不断寻求创新的解决方案以加速数字化转型。传统的软件开发方式往往面临着开发周期长、技…

HTB:Bank[WriteUP]

目录 连接至HTB服务器并启动靶机 信息收集 使用rustscan对靶机TCP端口进行开放扫描 提取出靶机TCP开放端口 使用nmap对靶机TCP开放端口进行脚本、服务扫描 使用nmap对靶机TCP开放端口进行漏洞、系统扫描 使用nmap对靶机常用UDP端口进行开放扫描 使用curl对域名进行访问…

操作手册:集成钉钉审批实例消息监听配置

此文档将记录在慧集通平台怎么实现钉钉审批实例结束或发起或取消时&#xff0c;能够实时的将对应的实例数据抓取出来送入第三方系统 集成平台配置 1、配置中心库&#xff0c;存储钉钉发送的消息&#xff0c;可以忽略&#xff0c;若不配置&#xff0c;则钉钉的消息将不再记录到…

【C++】B2118 验证子串

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;题目概述题目描述输入格式输出格式输入输出样例样例 1样例 2 题目提示 &#x1f4af;解决方案分析初步分析与思路 &#x1f4af;我的代码实现与分析代码回顾实现逻辑与优缺…

68.基于SpringBoot + Vue实现的前后端分离-心灵治愈交流平台系统(项目 + 论文PPT)

项目介绍 本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;采用B/S架构&#xff0c;面向对象编程思想进行项目开发。在引言中&#xff0c;作者将论述心灵治愈交流平台的当前背景以及系统开发的目的&#xff0c;后续章节将严格按照软件开发流程&#xff0c;对系统进…

【分布式缓存】一致性Hash原理剖析,一致性Hash与Hash的区别(详解)

文章目录 Hash算法Hash算法的缺陷一致性Hash算法一致性Hash存储规则一致性Hash解决Hash的缺陷问题一致性Hash的偏斜问题一致性哈希在实际中的应用总结 更多相关内容可查看 假设有一个场景&#xff1a;有三万张图片&#xff0c;有三台服务器S0&#xff0c;S1&#xff0c;S2 要求…

Clisoft SOS与CAD系统集成

Clisoft SOS与CAD系统集成 以下内容大部分来自官方文档&#xff0c;目前只用到与Cadence Virtuoso集成&#xff0c;其他还未用到&#xff0c;如有问题或相关建议&#xff0c;可以留言。 与Keysight ADS集成 更新SOS客户端配置文件sos.cfg&#xff0c;以包含支持ADS的模板&am…

Java-数据结构-链表-高频面试题(1)

在上一篇文章中&#xff0c;我们学习了链表中的"单向链表"&#xff0c;但学可不代表就是学会了&#xff0c;能够运用链表的地方比比皆是&#xff0c;解题方法也是层出不穷&#xff0c;今天就让我们巩固一下"单向链表"的知识吧~ 第一题&#xff1a;相交链表…

JVM实战—OOM的定位和解决

1.如何对系统的OOM异常进行监控和报警 (1)最佳的解决方案 最佳的OOM监控方案就是&#xff1a;建立一套监控平台&#xff0c;比如搭建Zabbix、Open-Falcon之类的监控平台。如果有监控平台&#xff0c;就可以接入系统异常的监控和报警&#xff0c;可以设置当系统出现OOM异常&…

照片做成图书小程序开发制作介绍

照片做成图书小程序系统&#xff0c;主要是让用户直接通过小程序选择需要做成书的类型和照片排版布局模板&#xff0c;以及上传照片的数量。照片上传完成后&#xff0c;生成模板图片样式进行预览或编辑修改。修改完成全部保存。保存后生成完整的照片书进行预览没问题&#xff0…

云商城--业务+架构学习和环境准备

云商城业务架构学习和环境准备 B2B&#xff1a;Business to Business&#xff0c;交易双方的身份都是商家&#xff0c;也就是商家将商品卖给商家&#xff0c;类似采购、批发类购物&#xff0c;国内代表性网站阿里巴巴批发网 C2C&#xff1a;Customer to Customer&#xff0c;…

Elasticsearch:Lucene 2024 年回顾

作者&#xff1a;来自 Elastic Chris Hegarty 2024 年对于 Apache Lucene 来说又是重要的一年。在本篇博文中&#xff0c;我们将探讨主要亮点。 Apache Lucene 在 2024 年表现出色&#xff0c;发布了许多版本&#xff0c;包括三年来的首次重大更新&#xff0c;其中包含令人兴奋…

基于LabVIEW的BeamGage自动化接口应用

设置 National Instruments LabVIEW可执行程序需要被配置为使用.NET 4框架。.NET允许自定义可执行程序的运行方式。可通过以下方式实现&#xff1a; 在LabVIEW安装目录中创建一个名为LabVIEW.exe.config的文本文件&#xff08;例如&#xff1a;C:\Program Files\National Ins…

卸载干净 IDEA(图文讲解)

目录 1、卸载 IDEA 程序 2、注册表清理 3、残留清理 1、卸载 IDEA 程序 点击屏幕左下角 Windows 图标 -> 设置-控制面板->intellij idea 勾选第一栏 Delete IntelliJ IDEA 2022.2 caches and local history&#xff0c;表示同时删除 IDEA 本地缓存以及历史。 Delete I…

李宏毅机器学习课程笔记02 | 机器学习任务攻略General Guide

第一步&#xff1a;分析loss on training data 先检查在训练数据上模型是否很好的学习 情况1&#xff1a;如果在训练集上&#xff0c;loss很大&#xff0c;说明在训练资料上没有训练好 可能性1&#xff1a;设置的模型太简单了&#xff0c;模型存在model bias模型偏差&#x…

【C++】19.多态

文章目录 1. 多态的概念2. 多态的定义及实现2.1 多态的构成条件2.1.1 实现多态还有两个必须重要条件&#xff1a;2.1.2 虚函数 (Virtual Function)定义&#xff1a;特性&#xff1a;示例代码&#xff1a;代码分析1. 类定义部分2. 主函数部分运行结果 重点讲解1. 虚函数的作用2.…

光伏仿真与设计系统应用架构深度剖析

在光伏产业蓬勃发展的时代背景下&#xff0c;绿虫光伏仿真与设计系统成为推动其高效发展的核心力量。其应用架构涵盖多个关键步骤&#xff0c;每个环节都紧密相扣&#xff0c;共同构建起精准且高效的设计体系。 气象分析作为开篇之笔&#xff0c;起着基石般的重要作用。系统全…

进程间通讯

简介&#xff1a; 进程间通讯方式有&#xff1a; 1.内存映射&#xff08;mmap&#xff09;&#xff1a; 使用mmap函数将磁盘空间映射到内存 2.管道 3.信号 4.套接字&#xff08;socket&#xff09; 5.信号机制 通过进程中kill函数&#xff0c;去给另一个函数发送信号&a…