防卫导弹
2016-05-15 01:16
246 查看
描述
一种新型的防卫导弹可截击多个攻击导弹。它可以向前飞行,也可以用很快的速度向下飞行,可以毫无损伤地截击进攻导弹,但不可以向后或向上飞行。但有一个缺点,尽管它发射时可以达到任意高度,但它只能截击比它上次截击导弹时所处高度低或者高度相同的导弹。现对这种新型防卫导弹进行测试,在每一次测试中,发射一系列的测试导弹(这些导弹发射的间隔时间固定,飞行速度相同),该防卫导弹所能获得的信息包括各进攻导弹的高度,以及它们发射次序。现要求编一程序,求在每次测试中,该防卫导弹最多能截击的进攻导弹数量,一个导弹能被截击应满足下列两个条件之一:
a)它是该次测试中第一个被防卫导弹截击的导弹;
b)它是在上一次被截击导弹的发射后发射,且高度不大于上一次被截击导弹的高度的导弹。
输入
多个测例。
每个测例第一行是一个整数n(n不超过100),第二行n个整数表示导弹的高度(数字的顺序即发射的顺序)。
n=0表示输入结束。
输出
每个测例在单独的一行内输出截击导弹的最大数目。
输入样例
5
5 6 100 6 61
0
输出样例
2
一种新型的防卫导弹可截击多个攻击导弹。它可以向前飞行,也可以用很快的速度向下飞行,可以毫无损伤地截击进攻导弹,但不可以向后或向上飞行。但有一个缺点,尽管它发射时可以达到任意高度,但它只能截击比它上次截击导弹时所处高度低或者高度相同的导弹。现对这种新型防卫导弹进行测试,在每一次测试中,发射一系列的测试导弹(这些导弹发射的间隔时间固定,飞行速度相同),该防卫导弹所能获得的信息包括各进攻导弹的高度,以及它们发射次序。现要求编一程序,求在每次测试中,该防卫导弹最多能截击的进攻导弹数量,一个导弹能被截击应满足下列两个条件之一:
a)它是该次测试中第一个被防卫导弹截击的导弹;
b)它是在上一次被截击导弹的发射后发射,且高度不大于上一次被截击导弹的高度的导弹。
输入
多个测例。
每个测例第一行是一个整数n(n不超过100),第二行n个整数表示导弹的高度(数字的顺序即发射的顺序)。
n=0表示输入结束。
输出
每个测例在单独的一行内输出截击导弹的最大数目。
输入样例
5
5 6 100 6 61
0
输出样例
2
#include <iostream> #include <cstdio> #include <cstring> #define MAXSIZE 1000 using namespace std; int main() { int n,i,j,res; int A[MAXSIZE],len[MAXSIZE]; scanf("%d",&n); while(n){ if(n==0)break; memset(len,0,sizeof(len)); for(i=n;i>0;i--){ scanf("%d",&A[i]); } len[1] = 1; for(i=2;i<=n;i++){ len[i]=1; for(j=1;j<i;j++) { if(A[j]<=A[i]&&len[j]+1>len[i]){ len[i] = len[j]+1; } } } res = len[1]; for(i = 2;i<=n;i++){ if(len[i]>res) res = len[i]; } printf("%d\n",res); scanf("%d",&n); } return 0; }
相关文章推荐
- 计算矩阵连乘积
- Leetcode:72. Edit Distance
- 第三十六课 Spark之TaskScheduler Spark shell案例运行日志详解、TaskScheduler和SchedulerBackend、FIFO与FAIR、Task运行时本地性算法详
- Stanford机器学习笔记-9. 聚类(Clustering)
- 收集的Git代码托管平台
- 【网络爬虫】爬取糗事百科段子
- STL中的map用法详解
- 远程复制文件到服务器
- 依赖倒置(Dependence Inversion Principle)DIP
- 跳马
- Java_bug收集_java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
- [ZOJ3256] Tour in the Castle
- Spark-再次分析Apache访问日志
- 二维数组矩阵常用实现方法
- 六数码问题
- MySQL与MongoDB的区别
- 找倍数
- java基础小结
- java读取xml文件
- Assigning retained object to weak property; object will be released after assignment