最少拦截系统

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 80802    Accepted Submission(s): 31005

Problem Description
某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的导弹来袭.由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹.
怎么办呢?多搞几套系统呗!你说说倒蛮容易,成本呢?成本是个大问题啊.所以俺就到这里来求救了,请帮助计算一下最少需要多少套拦截系统.
 
Input
输入若干组数据.每组数据包括:导弹总个数(正整数),导弹依此飞来的高度(雷达给出的高度数据是不大于30000的正整数,用空格分隔)
 
Output
对应每组数据输出拦截所有导弹最少要配备多少套这种导弹拦截系统.
 
Sample Input
8 389 207 155 300 299 170 158 65
 
Sample Output
2
 
理解题意:
首先我们来看这个导弹,其实没啥用,就是给定一个长度的序列,让你从中找出一个最长的单调递增子序列
 
做题思路:
首先这个题有两种解法,第一种是将所给的序列逆序以后,再和原序列求最长公共子序列;第二种是直接dp。
 
代码:
#include <iostream>

using namespace std;

const int MAXN = ;
int n,num[MAXN]; int LIS(){
int ans = ;
int dp[MAXN];
dp[] = ;
for(int i = ;i <= n; i++){
int max = ;
for(int j = ;j < i; j++){
if(dp[j] > max && num[j] < num[i])
max = dp[j];
}
dp[i] = max + ;
if(dp[i] > ans)
ans = dp[i];
}
return ans;
} int main()
{
while(cin>>n){
for(int i = ;i <= n; i++)
cin>>num[i];
cout<<LIS()<<endl;
}
return ;
}

最新文章

  1. 使用NuGet打包并发布至ProGet过程 (打包再次详解)【下篇】
  2. Jquery 基本知识(一)
  3. 作业,备份,存储过程,sqlserver print 语句,输出字符串
  4. 【读书笔记】读《JavaScript模式》 - JavaScript函数常用模式
  5. 浅析Oracle范式的概念(转载)
  6. [NodeJS] Deploy a Node Application with the Now CLI
  7. [UESTC1059]秋实大哥与小朋友(线段树, 离散化)
  8. 解析xlsx与xls--使用2012poi.jar
  9. MyBatis使用DEMO及cache的使用心得
  10. 自动化运维 Ansible
  11. jquey插件开发
  12. Django练习——TodoList
  13. Go语言结构
  14. ftp的自动部署以及添加虚拟账户的脚本
  15. pam模块初探
  16. Java Web开发总结(一)
  17. 云serverlinux又一次挂载指定文件夹(非扩充)
  18. django模板系统(上)
  19. mysql 筛选重复项(单列或者多列同时重复)
  20. Porting .Net RSA xml keys to Java

热门文章

  1. spring自动装配和通过java实现装配
  2. 关于layui的日期和时间组件laydate闪屏的坑
  3. java多线程之wait和notify协作,生产者和消费者
  4. BeautifulReport报告
  5. 阿里云的maven仓库 地址
  6. 题解【SP8002】HORRIBLE - Horrible Queries
  7. 516,base64的原理及优缺点
  8. Spring Cloud和Spring Boot版本问题导致Nacos 注册失败!
  9. jquery获取select多选框选中的文本值
  10. JS高级---案例:贪吃蛇小游戏