【算法实验四】--【动态规划】--防卫导弹
1046.防卫导弹
时限:1000ms 内存限制:10000K 总时限:3000ms
描述
一种新型的防卫导弹可截击多个攻击导弹。它可以向前飞行,也可以用很快的速度向下飞行,可以毫无损伤地截击进攻导弹,但不可以向后或向上飞行。但有一个缺点,尽管它发射时可以达到任意高度,但它只能截击比它上次截击导弹时所处高度低或者高度相同的导弹。现对这种新型防卫导弹进行测试,在每一次测试中,发射一系列的测试导弹(这些导弹发射的间隔时间固定,飞行速度相同),该防卫导弹所能获得的信息包括各进攻导弹的高度,以及它们发射次序。现要求编一程序,求在每次测试中,该防卫导弹最多能截击的进攻导弹数量,一个导弹能被截击应满足下列两个条件之一:
a)它是该次测试中第一个被防卫导弹截击的导弹;
b)它是在上一次被截击导弹的发射后发射,且高度不大于上一次被截击导弹的高度的导弹。
输入
多个测例。
每个测例第一行是一个整数n(n不超过100),第二行n个整数表示导弹的高度(数字的顺序即发射的顺序)。
n=0表示输入结束。
输出
每个测例在单独的一行内输出截击导弹的最大数目。
输入样例
5
5 6 100 6 61
0
输出样例
2
解析:这个老师上课讲了思路,我就按照老师的思路来写吧。输入了n个导弹,高度存在high[n]数组中,设num数组是存打下来导弹的个数。根据题意,我们可以从后面开始找,首先如果只打第n个导弹的话肯定可以打下来,则num[n]=1,现在算倒数第二个high[n-1],如果倒数第二个导弹高度大于等于倒数第一个即high[n-1]>=high[n],那么num[n-1]=num[n]+1,反之则num[n-1]=num[n]。以此类推,如果找第i个导弹时,将它于第i+1~n个比较,若high[i]>high[i+1],则num[i]=num[i+1]+1,不断更新其为最大值。代码如下:
#include<iostream>
#include<string.h>
#include<stdio.h>
using namespace std;
int main()
{
int n;
while(scanf("%d",&n)&&n)
{
int high[101];
memset(high,0,sizeof(high));
for(int i=1;i<=n;i++)
cin>>high[i];
int num[101];
memset(num,0,sizeof(num));
num[n]=1;
for(int i=n-1;i>=0;i--)
{
for(int j=i+1;j<=n+1;j++)
{
if(high[i]>=high[j])
{
if(num[i]<=num[j]+1)
num[i]=num[j]+1;
}
}
}
int max1=0;
for(int i=1;i<=n;i++)
{
if(max1<num[i])
max1=num[i];
}
cout<<max1<<endl;
}
}
【算法实验四】--【动态规划】--防卫导弹相关推荐
- 深大算法实验四——流水线问题
代码链接:深大算法实验四--车间动态规划代码-C++文档类资源-CSDN下载 目录 实验目的与要求: 实验过程及内容: 蛮力法: 动态规划法: 改进 空间优化方案: 问题1,关于最优解的存储方案 问题 ...
- CUMTOJ算法实验四
CUMTOJ算法实验四 问题 A: 判断日期是否符合格式 题目描述 我们知道一年有12个月,每个月最多有31天,年有平年和闰年之分,本题目要求如果输入一个日期,程序需要判断用户输入的日期是否正确. 提 ...
- matlab信息隐藏算法,实验四--基于DCT域的信息隐藏算法
<实验四--基于DCT域的信息隐藏算法>由会员分享,可在线阅读,更多相关<实验四--基于DCT域的信息隐藏算法(6页珍藏版)>请在人人文库网上搜索. 1.实验四 基于DCT域的 ...
- 算法设计与分析 实验四 动态规划求解流水线问题
动态规划求解流水线问题 一.实验目的与要求 1. 实验目的: 2. 实验亮点: 二.实验内容与方法 1. 实验内容: 2. 实验要求: 三.实验步骤与过程 (一)暴力穷举法 1.算法描述: 2.时间复 ...
- 【NOJ1149】【算法实验四】【DP_动态规划】旅游预算/加油站问题
1149.旅游预算 时限:1000ms 内存限制:10000K 总时限:3000ms 描述 一个旅行社需要估算乘汽车从某城市到另一城市的最小费用,沿路有若干加油站,每个加油站收费不一定相同. 旅游预 ...
- 【NOJ1149】【算法实验四】旅游预算
1149.旅游预算 时限:1000ms 内存限制:10000K 总时限:3000ms 描述 一个旅行社需要估算乘汽车从某城市到另一城市的最小费用,沿路有若干加油站,每个加油站收费不一定相同.旅游预算有 ...
- 算法实验二 动态规划
动态规划1 实验题目:减肥的小K2 题目描述: 小K是个苦命的孩子,他的师傅为了多赚钱,以减肥为理由,让他去采药,并说不完成不能吃饭.野地里有许多不同的草药,采每一株都需要一些时间,每一株也有它自身的 ...
- 【NOJ1047】【算法实验四】田忌赛马(tian ji racing)
1047.田忌赛马(tian ji racing) 时限:1000ms 内存限制:10000K 总时限:3000ms 描述 田忌与齐王赛马,双方各有n匹马参赛(n<=100),每场比赛赌注为1两 ...
- 【算法实验四】(DP-动态规划)【花生米3】
1084.花生米(三) 时限:1000ms 内存限制:10000K 总时限:3000ms 描述 五一长假第三天,Tom和Jerry在仓库散步的时候又发现了一堆花生米(仓库,又见仓库--).这次Tom ...
最新文章
- java流程控制图_Java流程控制
- vi的插入模式下退格和方向键不能使用的解决方法
- java和其他语言相比 特点,【单选题】与其他面向对象语言相比,Java语言突出的特点是:...
- boost::container实现前向迭代的测试程序
- mysql bigint转string_无语了,直到今天,我才揪出MySQL磁盘消耗迅猛的“真凶”!...
- 基础学习——C语言递归解决分鱼问题
- SQL Server Alwayson创建代理作业注意事项
- yum安转软件包提示nokey错误时的处理办法。
- 支持向量机(SVM)非线性数据切割
- 微信小游戏飞机大战Cocos Creator+TypeScript
- 【AI视野·今日CV 计算机视觉论文速览 第189期】Fri, 1 Jan 2021
- LeetCode -- 1818. 绝对差值和
- 几种欧姆龙PLC型号的辨识
- 计算机处理器i3 i5,realme Book笔记本高清渲染图曝光 配置上搭载11代酷睿i3/i5处理器...
- 关于ZIGBEE的CC2530+RFX2401C协议栈的修改
- 我被炒了! 一位36岁程序员的的焦虑与困惑...
- qq联系我们代码-qq在线客服代码
- c语言喜羊羊,青青草原101C位之争,喜羊羊vs懒羊羊
- 原生七彩影视APP源码 支持PC+WAP+APP三端
- 1加到100用python实现
热门文章
- Android MediaTek 平台增加UART接口的红外模块支持,支持NEC红外遥控
- 数据库linux安装prm,在Ubuntu 18.04服务器上安装Monica PRM的步骤
- 数据挖掘——为什么使用哑变量?哑变量有哪些作用?哪些情况应该使用哑变量?
- MLXG发微博16个字正式宣布退役。
- Java8之List求和
- 李一男加盟百度的幕后故事
- 回忆童年-教你用python做出童年经典的动漫人物
- 关系型数据库语言分类(DDL,DML,DCL)
- 【转】从K近邻算法、距离度量谈到KD树、SIFT+BBF算法
- 强劲深度图像性能现场体验!奥比中光两款3D标品相机亮相China3DV