【动态规划】拦截导弹1

2022年03月 C/C++(四级)真题解析#中国电子学会#全国青少年软件编程等级考试 某国为了防御敌国的导弹袭击, 发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷: 虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天, 雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段, 所以只有一套系统, 因此有可能不能拦截所有的导弹。输入导弹依次飞来的高度(雷达给出的高度数据是不大于 30000 的正整数) , 计算这套系统最多能拦截多少导弹。时间限制: 1000内存限制: 65536第一行是一个整数 N(不超过 15) , 表示导弹数。 阅读详情

题目描述

       某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭,由于该系统还在试用阶段。所以只有一套系统,因此有可能不能拦截所有的导弹。
      输入导弹依次飞来的高度(雷达给出的高度不大于30000的正整数)。计算这套系统最多能拦截多少导弹。

输入

N颗依次飞来的导弹高度,(导弹个数<=1000)。

输出

一套系统最多拦截的导弹数,并依次打印输出被拦截导弹的高度。
注意:若有多种拦截导弹的方案,则应输出导弹编号尽量靠前的那种方案。

样例输入

300 250 275 252 200 138 245

样例输出

5
300 275 252 200 138

求最长不下降序列,为了最后的输出,我们另外设一个状态,用来存此数前面拦截导弹的序号,由于不确定第一个拦截的子弹,所以从方案里的最大序号开始根据状态往前搜索,并储存,将储存的数组逆序输出就OK啦!(不清楚的见代码,也可以评论)

#include <bits/stdc++.h>
using namespace std;
int n = 1, a[1001], b[1001][2], ans, t, k[1001];

main()
{
	while (cin >> a[n])
		n++;
	n--;
	for (int i = 1; i <= n; i++)
		b[i][0] = 1;
	for (int i = 1; i <= n; i++)
		{
			for (int j = 1; j < i; j++)
				{
					if (a[j] >= a[i])
						{
							if (b[j][0] + 1 > b[i][0])
								{
									b[i][0] = b[j][0] + 1;
									b[i][1] = j;
								}
						}
				}
			if (b[i][0] > ans)
				{
					ans = b[i][0];
					t = i;
				}
		}
	printf("%d\n", ans);
	int p = 1;
	while (b[t][1] != 0)
		{
			k[p] = a[t];
			p++;
			t = b[t][1];
		}
	k[p] = a[t];
	for (int i = p; i >= 1; i--)
		printf("%d ", k[i]);
}

拜了个拜~ 

2022 年 3 月青少年软编等考 C 语言四级真题解析 2022 年 3 月青少年软编等考 C 语言四级真题解析。 阅读详情

相关推荐

带隙基准源要点

要点: 负反馈>正反馈;电流镜匹配;双极型晶体管匹配;电阻匹配; 经过R0的电流????????????=????????????????−????????????????????????=∆????????????????????i_R0=(〖VBE〗_1-〖VBE〗_2)/R_0 =∆VBE/R_0 经过R1的电流????????????=i_R1= ????????????????????VBE/R_1 零温电流I = ∆????????????????????∆VBE/R_0 +

HI_WALLE的博客 2263

动态规划问题———拦截导弹(C语言)

6.拦截导弹 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭,由于该系统还在试用阶段。所以只有一套系统,因此有可能不能拦截所有的导弹。输入导弹依次飞来的高度(雷达给出的高度不大于30000的正整数)。计算这套系统最多能拦截多少导弹。 输入:N颗依次飞来的导弹高度,(导弹个数大于1000)。 输出:一套系统最多拦截的导弹数,并依次打印输出被拦截导弹的高度。 该问题可近

weixin_47903856的博客 6668

在线迭代RLHF实战:从原理到实现,复现超越官方指令模型的工作流

大语言模型(LLM)的对齐技术是提升其与人类意图一致性的关键。其中,基于人类反馈的强化学习(RLHF)通过引入人类偏好信号,指导模型优化生成策略,是实现模型“有用”与“无害”的核心方法。其技术价值在于将抽象的“对齐”目标转化为可优化的奖励信号,从而显著提升模型在对话、推理等任务中的表现。然而,传统的离线RLHF存在数据分布偏移和奖励黑客等瓶颈。在线迭代RLHF通过构建“生成-评估-学习”的动态数据循环,让模型能够利用自身最新生成的数据进行持续优化,有效克服了上述问题,成为当前提升指令模型性能的前沿方向。本文

weixin_28725037的博客 368

动态规划——导弹拦截

某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。设d(i)表示,拦截第i个导弹后,还能拦截的导弹数量(包含第i个)。设xm为导弹序列中的最小值,则d(m)=1;第一行输入M表示包含M组测试数据,每组第一个输入N (N

lyhizjj的博客 1248

学术类PPT制作总结

本文分享了科技类PPT的制作技巧,希望相关的信息能帮助到读者。

奇妙水果的技术博客,欢迎交流技术~ 2881

国密SKF库数字签名全解析:SM2签名与验证的详细实现

本文详细解析了基于国密SKF库实现SM2数字签名与验证的全过程。内容涵盖SKF库环境搭建、设备初始化、PIN码验证、SM2签名生成以及纯软件与SKF库两种验证方式的详细实现,为开发者提供了一份实用的国密算法开发指南。

weixin_29303701的博客 323

【刷题】动态规划——线性DP(最长上升子序列):拦截导弹【贪心证明、nlogn做法、二分】

第一问就是普通的最长下降子序列,重点是第二问。 先给出贪心策略: 首先假设已有若干套系统拦截了导弹,对于一个新来的导弹X: 1、如果已有的系统能够拦截X,很自然的想法是把他丢到已有系统中末尾最小的,因为这样其他系统的末尾才能尽可能大,拦截更多的导弹。 2、如果已有系统都不能拦截X,那么创建一个新的系统。 问题是如何证明这个贪心是对的? 假设A是贪心法得到的序列数,B是最优解得到的序列数,显然B的序列是最少的,即B <= A。 现在有若干序列,新来了导弹X,假设贪心法和最优解使X接在了不同的序列后面.

qq_42581685的博客 734

深入解析进化算法中的选择与多样性

在计算科学的世界里,最优雅的解决方案往往源于最古老的智慧——大自然。进化算法(Evolutionary Algorithms, EAs)正是这样一种受达尔文自然选择学说启发的强大工具。它们通过模拟“适者生存”的过程,在庞大的可能性海洋中搜寻最优解。。:指的是深入挖掘和优化已知的优质解。这就像在一片已知的沃土上精耕细作,力求获得最高产量。强大的选择压力会促进这一过程。:指的是在整个搜索空间中寻找全新的、可能更优的解。这好比派遣探险队去发现新大陆,充满了未知与机遇。保持种群的多样性是探索的关键。

weixin_62533513的博客 716

拦截导弹——动态规划

导弹拦截

weixin_65569894的博客 915

OSCP-1-3-natraj(本地文件包含、日志中毒、apache2配置漏洞、nmap提权)

像往常一样,我们将使用“Netdiscover”工具识别主机的 IP。所以,让我们首先用 nmap 列出所有 TCP 端口。我们从访问web服务(80端口)开始,在那里我们找到了几张关于Natraj的图片和信息,我们将查看源代码和robots.txt,似乎没有什么有用的。(或至少,目前)。因此,让我们继续进行。在 Dirb 及其默认字典的帮助下,我们找到了一个名为“”的目录。我们进入并列出一个名为“”的文件:如果我们执行它,我们会看到它什么也不做。我们可能需要添加其他内容。

墨痕诉清风的博客 528

2026.3.21:Ubuntu26.04 apt换国内源 清华源 阿里源 中科大源 163源

作为 LTS 版本,它会有 5 年的常规维护和安全更新。如果订阅 Ubuntu Pro,还能享受额外7年的支持。也就是说, Ubuntu Pro将享有长达 12 年的系统更新保障!接下来,我们将重点介绍 Ubuntu 24.04 LTS 中那些值得关注的新特性,以方便你决定是否进行升级。Ubuntu 24.04 LTS,代号 「Noble Numbat」,即将与我们见面!Canonical 已经宣布, Ubuntu 24.04 LTS。源文件地址 已经更换为。

拥抱具身智能,昇腾Ascend C 9071

【python】拦截导弹

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

python一生之敌的博客 876

Halcon算子知识:optical_flow_mg

光流(Optical Flow)是一种研究图像对齐的算法,一般包括两大类:稀疏光流和稠密光流。稀疏光流就是研究图像中稀疏点的光流,这些点一般是角点;稠密光流则是研究图像中所有点的偏移量。以下介绍halcon的基本光流算子optical_flow_mg的原理方法。该算子计算两个图片的光流法。 二、算子说明 optical_flow_mg(ImageT1, ImageT2 : VectorField : Algorithm, SmoothingSigma, Integration

gongdiwudu的专栏 1万+

1168. 【动态规划】拦截导弹1

某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭,由于该系统还在试用阶段。所以只有一套系统,因此有可能不能拦截所有的导弹。输入导弹依次飞来的高度(雷达给出的高度不大于30000的正整数)。注意:若有多种拦截导弹的方案,则应输出导弹编号尽量靠前的那种方案。一套系统最多拦截的导弹数,并依次打印输出被拦截导弹的高度。N颗依次飞来的导弹高度,(导弹个数<=1000)。

wrnxrxsb的博客 386

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

牛客:【2021秋季算法入门班第七章习题:动态规划1】部分题解:方块与收纳盒、舔狗舔到最后一无所有、可爱の星空、[NOIP1999]拦截导弹

牛客题单——动态规划

WSY444的博客 1111

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

2021-01-12动态规划的最长xx子序列问题

一. 第二题 1.题面: 2.题解: 以为是01背包,测试样例正确但是段错误, “但是这个题目没办法直接用动态规划,因为这个和会非常非常大,导致状态空间过大,会内存溢出,所以最后AC的代码还是用了搜索+剪枝,直接搜索所有可能的选择” 用·剪枝的dfs,回头补 补充:关于getline函数: getline 的 C++ 函数。此函数可读取整行,包括前导和嵌入的空格,并将其存储在字符串对象中。 getline 函数如下所示:getline(cin, inputLine);

weixin_46064382的博客 168

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

环形数组最大和,矩阵最小路径和,过河卒,拦截导弹

先看这个点是不是马点,是的话标记为零。令初始位置 dp[0][0]=1,这是可以走的点,状态转移方程。找出maxvalue,以及sum-minvalue,看哪个最大。求出他的最长递增序列和最长递减序列。

hhhg1234的博客 343

拦截导弹 (最长不上升子序列)基础dp题

题目 拦截导弹 描述 一种导弹拦截系统的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。输入导弹依次飞来的高度,计算这套系统最多能拦截多少导弹 输入格式 第一行是一个整数n(n&amp;amp;amp;lt;=1000),代表接下来有n个导弹。 第二行有n个整数。代表每个导弹的高度(0&amp;amp;amp;lt;高...

Roy_Wang的博客 655

【较难,技巧题】动态规划 [NOIP1999]拦截导弹 ——求最大下降子序列长和最小覆盖全部数据的序列数

点击打开链接(新发现的一个oj,样式很小清新呀)题目大意:n个导弹,(1)求最大非上升子序列长度(2)要拦截所有导弹最少要配备这种导弹拦截系统的套数思路1:每一次求最大非上升子序列,求一次删一次。直到数组全0。有点害怕超时,然而没有hhh注意:1、需要记录序列不能用O(nlogn)的方法2、lower_bound()函数的要求是查找数组是非递减的,找第一个&gt;=x的位置;upper_bound...

Always_ease的博客 839

[题解] [NOIP 1999] 导弹拦截

有若干枚导弹,每一枚导弹的高度是hi​,导弹拦截系统每次拦截导弹都不能比上一次拦截的高度更高,导弹拦截没有冷却时间且第一次拦截的高度任意。问题1:一套系统最多能拦截多少导弹?问题2:拦截所有导弹最少需要多少个拦截系统?

東木的博客 1330

动态规划(3)

Robberies http://acm.hdu.edu.cn/showproblem.php?pid=2955 #include #include #include #include using namespace std; //这题是参考网友的代码····自己的能力还是不可以。不过做了这题,再和0-1背包问题想一想,觉得收获还是不错。 //网友说将逃跑率当成物品价值····小弟还是

Allen_L_L的专栏 646

导弹防御系统

题目描述 【问题描述】 某国为了防御敌国的导弹袭击,开发出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭,并观测到导弹依次飞来的高度,请计算这套系统最多能拦截多少导弹。拦截来袭导弹时,必须按来袭导弹袭击的时间顺序,不允许先拦截后面的导弹,再拦截前面的导弹。 【输入形式】 每组输入有两行, 第一行,输入雷达捕捉到的敌国导弹的数量k(k<=25), 第二行,输入k个正整数,表示k枚导弹的高度,

Bubu的博客 355

从导弹防御系统到序列分割:贪心算法的奇妙应用场景

本文探讨了贪心算法在导弹防御系统和序列分割中的高效应用,以NOIP1999的拦截导弹问题为例,展示了贪心策略如何通过局部最优选择实现全局最优解。文章还分析了贪心算法的数学基础、跨领域应用(如资源分配、物流优化)及其局限性,为算法爱好者提供了深入见解。

u6v7w8x的博客 1011

【ACM】拦截导弹 - 0-1背包问题

拦截导弹 时间限制:3000ms | 内存限制:65535KB 难度:3 描述 某国为了防御敌国的导弹袭击,发展中一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于等于前一发的高度。某天,雷达捕捉到敌国导弹来袭。由于该系统还在试用阶段,所以只用一套系统,因此有可能不能拦截所有的导弹。 输入第...

weixin_30762087的博客 112

算法分析与设计5_动态规划

动态规划 动态规划算法通常用于求解具有某种最优性质的问题。 在这类问题中,可能会有许多可行解。 每一个解都对应于一个值,我们希望找到具有最优值的解。 基本思想是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。 适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。若用分治法来解这类问题,则分解得到的子问题数目太多,有些子问题被重复计算了很多次。 如果我们能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,这样就可以避免大量的重复计算,节省时间。 我们可以用

weixin_44618388的博客 307

《计算机考研-机试指南》- 6动态规划

文章目录递归求解N阶楼梯上楼问题不容易系列之一最长递增子序列LIS拦截导弹最长公共子序列LCSCoincidence状态与状态转移方程动态规划问题分析举例背包采药-典型的0-1背包问题Piggy-Bank-变种完全背包问题 递归求解 N阶楼梯上楼问题 题意: 一次走两阶或者一阶,问有多少种上楼方式。 定义: dp[i]为i阶楼梯方式。目标:dp[n]。 考察最后一步,要么上一阶,要么上二阶。故状态...

三岁的博客 512
上一篇: 【USACO题库】1.5.4 Checker Challenge跳棋的挑战
下一篇: 【USACO题库】1.2.4 Palindromic Squares回文平方数
开朗的坤坤
博客等级 码龄5年 11粉丝 26原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值