博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
导弹拦截
阅读量:5225 次
发布时间:2019-06-14

本文共 1094 字,大约阅读时间需要 3 分钟。

问题 A: 导弹拦截

时间限制: 1 Sec  内存限制: 128 MB
提交: 62  解决: 38
[][][]

题目描述

某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意 的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所 有的导弹。

输入导弹一次飞来的高度(雷达给出的高度不大于30000的正整数)。计算这套系统最多能拦截多少导弹。

输入

n颗依次飞来的导弹高度,导弹颗数<=1000。

输出

一套系统最多拦截的导弹数。

样例输入

7 300 250 275 252 200 138 245

样例输出

5
 
这道题题目可能需要发一下,相同名字之类的题目太多,难以分清。
这道题没记错的话用一个最长不上升子序列,yyhs上可能O(n^2
)过不了,所以打一个二分即可。
#include
#include
#include
#include
#include
const int MAXN=1007;using namespace std;int n;int a[MAXN];int dp[MAXN],num=0;void mid_find(int x);int main(){ scanf("%d",&n); for (int i=1;i<=n;i++) scanf("%d",&a[i]); num=1; dp[1]=a[1]; for (int i=2;i<=n;i++) { mid_find(a[i]); } printf("%d",num);}void mid_find(int x){ int l=1,r=num,mid; while (l
>1; if (dp[mid]>=x) l=mid+1; else r=mid; } if (dp[l]>=x) { num++; dp[num]=x; } else dp[l]=x;}

 

 

转载于:https://www.cnblogs.com/fengzhiyuan/p/6878013.html

你可能感兴趣的文章
高级滤波
查看>>
使用arcpy添加grb2数据到镶嵌数据集中
查看>>
[转载] MySQL的四种事务隔离级别
查看>>
QT文件读写
查看>>
C语言小项目-火车票订票系统
查看>>
15.210控制台故障分析(解决问题的思路)
查看>>
常用到的多种锁(随时可能修改)
查看>>
用UL标签+CSS实现的柱状图
查看>>
mfc Edit控件属性
查看>>
[Linux]PHP-FPM与NGINX的两种通讯方式
查看>>
Java实现二分查找
查看>>
优秀员工一定要升职吗
查看>>
[LintCode] 462 Total Occurrence of Target
查看>>
springboot---redis缓存的使用
查看>>
架构图-模型
查看>>
sql常见面试题
查看>>
jQuery总结第一天
查看>>
Java -- Swing 组件使用
查看>>
Software--Architecture--DesignPattern IoC, Factory Method, Source Locator
查看>>
poj1936---subsequence(判断子串)
查看>>