【C++题解】1375. 拦截导弹方案求解

news2024/11/15 21:00:07

问题:1375. 拦截导弹方案求解

类型:贪心


题目描述:

某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:
虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。
某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。 输入n个导弹依次飞来的高度(雷达给出的高度数据是不大于 30000 的正整数),计算如果要拦截所有导弹最少要配备多少套这种导弹拦截系统。
比如:有 8 颗导弹,飞来的高度分别为
389 207 175 300 299 170 158 165
那么需要 2 个系统来拦截,他们能够拦截的导弹最优解分别是:
系统 1 :拦截 389 207 175 170 158
系统 2 :拦截 300 299 165

输入:

两行,第一行表示飞来导弹的数量 n(n≤1000);
第二行表示 n 颗依次飞来的导弹高度(导弹高度互不相等);

输出:

第一行输出:要拦截所有导弹最小配备的系统数 k;

接下来 k 行分别输出每套系统拦截哪些高度的导弹;

样例:

输入:

8
389 207 175 300 299 170 158 165   

输出:

2
1:389 207 175 170 158
2:300 299 165

在这里插入图片描述


完整代码如下:

#include<bits/stdc++.h> 
using namespace std;
int main(){
	//一、分析问题
	//已知:n 个导弹依次飞来的高度;
	//未知:如果要拦截所有导弹最少要配备多少套这种导弹拦截系统;
	//关系:第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。

	
	//二、数据定义 
	int n,a[1010]={},c=0,sum,temp;
	bool isFind=false;
	vector< vector<int> > v;

	//三、数据输入
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>a[i];		
	} 
	//四、数据计算 
	while(!isFind){
		temp=INT_MAX;
		if(c == v.size()) v.push_back(vector<int>());
		sum=0;
		for(int i=0;i<n;i++){
			if(a[i]==0) continue;
			sum+=a[i];
			if(temp>a[i]){
				temp=a[i];
				v[c].push_back(a[i]);
				a[i]=0;
			}
		}

		if(0==sum){
			isFind=true;
		}else{
			++c;
		}
	}


	//五、输出结果
	cout<<c<<endl; 
	for(int i=0;i<c;i++){
		cout<<i+1<<":";
		for(int j=0;j<v[i].size();j++){
			cout<<v[i][j];
			if(j!=v[i].size()-1) cout<<" ";
		}
		cout<<endl;
	}
	return 0;	
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

理解Flink数据流图

前言 在大数据处理的世界里&#xff0c;Apache Flink 已经成为处理实时数据流的一个强大工具。Flink 提供了一种高度灵活的方法来构建复杂的数据处理管道&#xff0c;其核心是所谓的 DataFlow 图模型。本文将带你深入了解 Flink DataFlow 图的基础知识&#xff0c;帮助你理解它…

Hadoop入门基础(一):深入探索Hadoop内部处理流程与核心三剑客

在大数据的世界里&#xff0c;处理海量数据的需求越来越多&#xff0c;而Hadoop作为开源的分布式计算框架&#xff0c;成为了这一领域的核心技术之一。 一、Hadoop简介 Hadoop是Apache Software Foundation开发的一个开源分布式计算框架&#xff0c;旨在使用简单的编程模型来…

别再问了!微信小程序的那些事儿,一文搞定

微信小程序是一种无需下载安装即可使用的应用&#xff0c;它嵌入在微信生态中&#xff0c;用户通过微信扫一扫或搜索即可快速访问。 无论是购物、订餐、预约服务&#xff0c;还是玩个小游戏、看篇文章&#xff0c;都不需要下载额外的APP&#xff0c;直接就能在微信里搞定。不会…

Leading SAFe领导大规模敏捷认证公开课

课程简介 SAFe – Scaled Agile Framework是目前全球最广泛使用的大规模敏捷框架&#xff0c;也是全球敏捷相关认证中增长最快、最受认可的规模化敏捷认证。全球已有超过120万名SAFe认证专业人士。据官方统计&#xff0c;获得SAFe认证的IT专业人士平均工资增长13,000美元&…

C++:模拟实现string

前言&#xff1a; 为了更好的理解string底层的原理&#xff0c;我们将模拟实现string类中常用的函数接口。为了与std里的string进行区分&#xff0c;所以用命名空间来封装一个自己的strin类。 string.h #pragma once #define _CRT_SECURE_NO_WARNINGS 1#include<iostream&…

arm 的寄存器概述(8)

关于寄存器的概述。 带 三角形的是 这种模式下 独有的寄存器&#xff0c;也就是说&#xff0c;FIQ模式下与 SYstem/user 模式下&#xff0c;虽然都有r8 寄存器&#xff0c;但是不是一个东西。 r13 (SP ) 这是堆栈指针&#xff0c; r15(PC ) 这是 code 的指针。 r14(LR ), 这…

自动化与高效设计:推理技术在FPGA中的应用

想象一下&#xff0c;你正在设计一个复杂的电路系统&#xff0c;就像在搭建一座精巧的积木城堡。你手头有各种形状和功能的积木块&#xff0c;这些积木块可以组合成任何你需要的结构。在这个过程中&#xff0c;你有两种主要的方法&#xff1a;一种是手动挑选和搭建每一块积木&a…

安装JDK与配置环境变量

安装JDK与配置环境变量 JDK安装包所在路径&#xff1a;/opt/software/jdk-8u221-linux-x64.tar.gz 详细步骤 安装JDK与配置环境变量一、进入JDK安装目录/opt/software二、解压“jdk-8u221-linux-x64.tar.gz”安装包至当前目录三、查看/opt/software/目录下解压文件四、编辑系统…

鹅厂探索国漫新方向,谁家新作能不负期待?

上周一年一度的腾讯视频动漫大赏年度发布会结束了&#xff0c;但动漫迷们的讨论却没有停止。此次的片单分为“气”“大怪”“阁”三大主题&#xff0c;今天来和大家回顾解读一下“气”和“阁”有哪些看点吧。 首先想谈一谈“阁”&#xff0c;它是平台在内容升级思路上的体现&am…

C指针汇总——藏在数组名与指针之间的异同及使用细节

指针与数组的异同 数组名&#xff1a; 是一个指针常量(数组名的值是数组首元素的指针常量)&#xff0c;指向数组的首元素。大小固定为整个数组的大小。无法被改变或重新赋值(这里指数组名不能被赋值(指针常量不能指向其它地址)&#xff0c;数组元素是可以被重新设置的)。无法进…

企业CAD图纸加密软件推荐!2024年好用的10款CAD图纸加密软件排行

在现代企业中&#xff0c;CAD图纸作为重要的设计和工程数据&#xff0c;其安全性和保密性至关重要。为了防止图纸被非法获取、篡改或滥用&#xff0c;选择一款高效的CAD图纸加密软件显得尤为重要。本文将为您推荐2024年市场上十款好用的CAD图纸加密软件&#xff0c;帮助企业保护…

2024最新50道NLP和人工智能领域面试题+答案(中文+英文双版本)

编者按&#xff1a;分享一个很硬核的免费人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c; 可以当故事来看&#xff0c;轻松学习。 中文版本 自然语言处理 (NLP)已成为语言学、人工智能和计算机科学交叉领域的变革性领域。随着文本数据量的不断增加&…

图形编辑器基于Paper.js教程15:在Paper.js中实现拖拽图片导入画布功能

在现代Web开发中&#xff0c;用户体验是至关重要的。而拖拽文件上传的功能&#xff0c;不仅直观易用&#xff0c;还提升了用户与界面的交互体验。在这篇文章中&#xff0c;我们将探讨如何使用Paper.js和HTML5的拖放API&#xff0c;来实现将图片文件直接拖拽并导入到Paper.js的画…

如何让图片清晰度变高?介绍三种转变方案

如何让图片清晰度变高&#xff1f;在数字化时代&#xff0c;图片的质量直接影响着信息传递的效果。但由于拍摄条件、传输方式或存储时间的限制&#xff0c;我们时常会遇到图片清晰度不足的问题。还好随着技术的进步&#xff0c;现在有多种方法可以有效提升图片的清晰度。下文将…

arm 的模式+异常(7)

1 Byte , 8 bit, HarlfWord , 16bit , word ,32bit. 2 在内存中每一字节都有一个地址与它对应。 3 操作系统的8种模式 用户模式&#xff1a; 不能访问硬件资源&#xff0c;但是可以通过系统调用来访问。 疑问&#xff1a; 那不还是可以访问硬件资源吗&#xff1f; 系统模…

Zookeeper集群如何实现强一致性和高可用,集群数据同步过程

在分布式系统中&#xff0c;通常会面临如下问题&#xff1a; 分布式协调&#xff1a;在分布式环境下&#xff0c;多个节点需要协同工作&#xff0c;确保多个服务之间数据的一致性以及系统的可靠性。 分布式锁&#xff1a;在分布式系统中&#xff0c;多个节点可能需要同时访问共…

ppt模板软件哪个好?这5个工具提供各种类型的PPT模板

在筹备一场关于中元节的精彩演讲时&#xff0c;你是否曾陷入过寻找完美PPT模板的困境&#xff1f;那些千篇一律的设计是否让你觉得乏味&#xff0c;渴望一份创意与美感并存的视觉呈现&#xff1f; 别担心&#xff0c;今天&#xff0c;我将为你揭晓几款宝藏级软件&#xff0c;它…

如何为 Nextcloud 配置自动数据库备份 - 应用程序

自动数据库备份模块简化了生成数据库计划备份的过程。这些备份可以存储在各种位置&#xff0c;包括本地驱动器、FTP 服务器、SFTP 服务器、Dropbox、Google Drive、OneDrive、NextCloud 和 Amazon S3 云存储。用户还可以选择启用自动删除过期备份的功能。此外&#xff0c;用户可…

大模型越狱攻击成功率 (ASR) 评判方法

JailbreakBench (24.04) • Rule-based. The rule-based judge from Zou et al. (2023) based on string matching, • GPT-4. The GPT-4-0613 model used as a judge (OpenAI, 2023), • HarmBench. The Llama-2-13B judge introduced in HarmBench (Mazeika et al., 2024), …

Xinstall助力App推广:落地页跳转,轻松提升转化率

在移动互联网时代&#xff0c;App的推广与运营成为了各行各业的关键一环。然而&#xff0c;许多推广者在落地页跳转App这一环节上遇到了不小的挑战。用户点击落地页后&#xff0c;往往需要经过繁琐的步骤才能跳转到App&#xff0c;这不仅降低了用户体验&#xff0c;还严重影响了…