【算法】拦截导弹(线性DP)

题目 

某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。

但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。

某天,雷达捕捉到敌国的导弹来袭。

由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。

输入导弹依次飞来的高度(雷达给出的高度数据是不大于30000的正整数,导弹数不超过1000),计算这套系统最多能拦截多少导弹,如果要拦截所有导弹最少要配备多少套这种导弹拦截系统。

输入格式

共一行,输入导弹依次飞来的高度。

输出格式

第一行包含一个整数,表示最多能拦截的导弹数。

第二行包含一个整数,表示要拦截所有导弹最少要配备的系统数。

数据范围

雷达给出的高度数据是不大于 30000 的正整数,导弹数不超过 1000。

输入样例:

389 207 155 300 299 170 158 65

输出样例:

6
2

思路

求一台设备拦截的最大数量:求最大非上升子序列。

求需要多少设备才能全部拦截:

开一个数组p[],初始状态为空,cnt代表设备数,p[i]代表第i台设备所能拦截的最大高度。

当我们遇到一枚导弹时我们有两个选择:

1、使用现有设备进行拦截

2、新增加一台设备进行拦截

如果中间状态如下:(可以确保q[]数组是递增的,因为无法拦截的导弹会放入当前最后的一个位置)

当高度为2的导弹来袭的时候,优先使用p[0] = 3进行拦截,然后p[0] = 2;

【2,5,7】

当高度为5的导弹来袭的时候,优先使用p[1] = 5进行拦截,然后p[1] = 5;

【2,5,7】

当高度为8的导弹来袭的时候,现有设备无法拦截,新增加一个设备p[3],令p[3] = 8;

【2,5,7,8】 

当高度为4的导弹来袭的时候,优先使用p[1] = 5拦截,p[1] = 4;

【2,4,7,8】

代码 

#include<bits/stdc++.h>
using namespace std;
const int N = 1e3 + 10;
int n;
int h[N],f[N],q[N];int main()
{string s;getline(cin,s);stringstream ssin(s);while(ssin >> h[n]) n ++;int res = 0,cnt = 0;for(int i = 0; i < n; i ++){f[i] = 1;for(int j = 0; j < i; j ++){if(h[i] <= h[j]) f[i] = max(f[i],f[j] + 1);}res = max(res,f[i]);int k = 0;while(k < cnt && h[i] > q[k]) k ++;if(k == cnt){q[cnt] = h[i];cnt ++;}else{q[k] = h[i];}}cout << res << endl << cnt << endl;return 0;
}

题目来自:1010. 拦截导弹 - AcWing题库

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

响应式Web开发项目教程(HTML5+CSS3+Bootstrap)第2版 例4-11 HTML5 表单验证

代码 <!doctype html> <html> <head> <meta charset"utf-8"> <title>HTML5 表单验证</title> </head><body> <form action"#" method"get" novalidate>请输入您的邮箱:<input type&q…

Elasticsearch:将文档级安全性 (DLS) 添加到你的内部知识搜索

作者&#xff1a;来自 Elastic Sean Story 你的企业很可能淹没在内部数据中。 你拥有问题跟踪、笔记记录、会议记录、维基页面、视频录制、聊天以及即时消息和私信。 并且不要忘记电子邮件&#xff01; 难怪如此多的企业都在尝试创造工作场所搜索体验 - 为员工提供集中、一站…

【知识点】Java常用

文章目录 基础基础数据类型内部类Java IOIO多路复用重要概念 Channel **通道**重要概念 Buffer **数据缓存区**重要概念 Selector **选择器** 关键字final 元注解常用接口异常处理ErrorException JVM与虚拟机JVM内存模型本地方法栈虚拟机栈 Stack堆 Heap方法区 Method Area (JD…

视频压缩很简单,只需看这几个!【无损压缩】

在当今数字化的时代&#xff0c;视频成为了信息传递、娱乐和沟通的重要媒介。然而&#xff0c;随着高清和超高清视频的流行&#xff0c;视频文件的体积也相应增大&#xff0c;给存储、传输和分享带来了一系列挑战。为了克服这些问题&#xff0c;视频压缩技术应运而生。本文将深…

论文阅读:Brain–Computer EMO: A Genetic Algorithm Adapting to the Decision Maker

Brain–Computer Evolutionary Multiobjective Optimization: A Genetic Algorithm Adapting to the Decision Maker 作者&#xff1a;Roberto Battiti、Andrea Passerini 期刊&#xff1a;IEEE TRANSACTIONS ON EVOLUTIONARY COMPUTA TION、OCTOBER 2010 DOI&#xff1a;10.11…

window 安装 jenkins 编写脚本

set JAVA_HOMED:\RuanJianKaiFa\jdk\jdk11 set CLASSPATH.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOMe%\lib\tools.jar; set Path%JAVA_HOME%\bin; java -jar jenkins.war 下载jenkins.war包&#xff0c;编写一个txt文档&#xff0c;把脚本复制进去&#xff0c;修改文件后缀为.bat文件…

Nginx简单阐述及安装配置

目录 一.什么是Nginx 二.Nginx优缺点 1.优点 2.缺点 三.正向代理与反向代理 1.正向代理 2.反向代理 四.安装配置 1.添加Nginx官方yum源 2.使用yum安装Nginx 3.配置防火墙 4.启动后效果 一.什么是Nginx Nginx&#xff08;“engine x”&#xff09;是一个高性能的HTTP…

【每日一题】7.LeetCode——合并两个有序链表

&#x1f4da;博客主页&#xff1a;爱敲代码的小杨. ✨专栏&#xff1a;《Java SE语法》|《数据结构与算法》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更新的动力❤️ &#x1f64f;小杨水平有限&#xff0c;欢…

Java黑马——拼图小游戏

拼图小游戏&#xff08;GUI&#xff09; AWT包会有些兼容问题&#xff0c;不支持某些中文 在本次游戏的GUI开发中&#xff0c;我们将使用Swing包 一、主界面分析 这些东西统一称为组件&#xff0c;JFrame是一个组件、JMenuBar也是一个组件、等等 1、练习一&#xff1a;创建主…

WiFi 7 的核心要点

目录 WiFi 7 是什么&#xff1f; WiFi 7 的主要feature功能&#xff1a; 320Mhz channel 4K QAM Multi-Link Operation (MLO)&#xff0c;多链路操作 512 block ACK OFDMA&#xff1a;multiple RUs to single STA. 总结&#xff1a;性能是第一优先级&#xff0c;WiFi 7&#xf…

leetcode 19 , 118

19 .删除链表倒数第n个节点 思路1&#xff1a; 我首先想到的就是使用两个loop来进行解决&#xff1a; 遍历所有节点&#xff0c;得到需要删除节点的位置。再遍历一边所有节点&#xff0c;找到需要删除节点进行删除。 解决方案1&#xff1a; class Solution {public ListNod…

AI与数字孪生

源自&#xff1a;译文 “人工智能技术与咨询” 发布 AI和数字孪生 预测分析&#xff1a;网络安全水晶球 面对不断变化的威胁&#xff0c;提供自适应安全防护 自然语言处理&#xff1a;解码威胁语言 先进技术&#xff1a;人工智能作为数字孪生安全的基础 道德考量 面向未来…

maven中的version加不加SNAPSHOT的区别

我们平时开发时经常看到maven的pom.xml文件里面的包有两种 因为maven的远程仓库一般分为public(Release)和SNAPSHOT&#xff0c;前者代表正式版本&#xff0c;后者代表快照版本。 具体有什么区别呢&#xff1a; 举例说明&#xff0c;你开发了一个基础功能&#xff0c;打包发布…

服务器C盘突然满了,是什么问题

随着时代的发展、互联网的普及&#xff0c;加上近几年云计算服务的诞生以及大规模普及&#xff0c;对于服务器的使用目前是非常普遍的&#xff0c;用户运维的主要对象一般也主要是服务器方面。在日常使用服务器的过程中&#xff0c;我们也会遇到各式各样的问题。最近就有遇到用…

免费的ChatGPT网站 ( 7个 )

ChatGPT的核心功能是基于用户在输入时的语言或文本生成相应的回复或继续内容。此外&#xff0c;它还能够完成多种任务&#xff0c;如撰写邮件、视频脚本、文案、翻译、代码编写以及撰写论文等。 博主归纳总结了7个国内非常好用&#xff0c;而且免费的chatGPT网站&#xff0c;AI…

026-安全开发-PHP应用模版引用Smarty渲染MVC模型数据联动RCE安全

026-安全开发-PHP应用&模版引用&Smarty渲染&MVC模型&数据联动&RCE安全 #知识点&#xff1a; 1、PHP新闻显示-数据库操作读取显示 2、PHP模版引用-自写模版&Smarty渲染 3、PHP模版安全-RCE代码执行&三方漏洞 演示案例&#xff1a; ➢新闻列表&…

洗眼镜用超声波清洗机是不是智商税?值得入手超声波清洗机推荐

为了不洗眼镜大家都可以懒到什么程度&#xff1f;从一开始佩戴眼镜开始&#xff0c;就非常懒得洗眼镜&#xff0c;就算是眼镜脏了就随便用衣角或者是纸巾擦擦就完事了~基本都是很少用水去清洗。由于我一副眼镜使用的时长不是很久&#xff0c;老板也问我为什么频繁换眼镜&#x…

程序员自由创业周记#26:实习生

程序员自由创业周记#26&#xff1a;实习生 不发工资的实习生 一个人的力量是有限的&#xff0c;尤其是创业。因为要兼顾很多&#xff0c;需要的做的事也很多&#xff0c;而且时间有限&#xff0c;所以有一个帮手至关重要。不过鉴于创业的启动资金有限&#xff0c;雇人在现阶段…

Echars3D 饼图开发

关于vue echart3D 饼图开发 首先要先下载 "echarts-gl", 放在main.js npm install echarts-gl --save <template><div class"cointan"><!-- 3d环形图 --><div class"chart" id"cityGreenLand-charts"><…

【2024美国大学生数学建模竞赛】2024美赛C题网球运动中的势头,网球教练4.0没人比我更懂这个题了!!!

【2023美国大学生数学建模竞赛】2024美赛C题 问题分析、数学模型、实现代码、完整论文 引言 本人是计算机博士&#xff0c;拥有10年网球球龄&#xff0c;2023年的温网决赛&#xff0c;熬夜到半夜全称观看完了直播&#xff0c;对于网球规则、比赛的数据非常熟悉&#xff0c;这个…