2945:拦截导弹
总时间限制: 1000ms 内存限制: 65536kB
描述
某国为了防御敌国的导弹袭击,开发出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭,并观测到导弹依次飞来的高度,请计算这套系统最多能拦截多少导弹。拦截来袭导弹时,必须按来袭导弹袭击的时间顺序,不允许先拦截后面的导弹,再拦截前面的导弹。
输入
输入有两行,
第一行,输入雷达捕捉到的敌国导弹的数量k(k<=25),
第二行,输入k个正整数,表示k枚导弹的高度,按来袭导弹的袭击时间顺序给出,以空格分隔。
输出
输出只有一行,包含一个整数,表示最多能拦截多少枚导弹。
样例输入
8
300 207 155 300 299 170 158 65
样例输出
6
来源
医学部计算概论2006期末考试题

问题链接:Bailian2945 导弹拦截
问题简述:(略)
问题分析
    每一发导弹都不能高于前一发,也就是低于前一发导弹,可以从右往左求一个最长上升子序列,也就是从左往右求一个最长下降子序列。
要增加的系统数,相当与从左往右的最长上升序列减去1。
    这个题基本上是模板题。
程序说明:(略)
参考链接:(略)
题记:(略)

AC的C++语言程序如下:

/* Bailian2945 导弹拦截 */#include <iostream>
#include <cstdio>using namespace std;const int K = 25;
int a[K], dp[K], k;int lds(int n)
{int res = 0;for(int i=0; i<n; i++) {dp[i] = 1;for(int j=0; j<i; j++)if(a[i] <= a[j])dp[i] = max(dp[i], dp[j] + 1);res = max(res, dp[i]);}return res;
}int main()
{scanf("%d", &k);for(int i = 0; i < k; i++)scanf("%d", &a[i]);printf("%d\n", lds(k));return 0;
}

Bailian2945 导弹拦截【最长上升子序列+DP】相关推荐

  1. CDOJ 251 导弹拦截 最长递增子序列

    点击打开链接 就是寻找LIS 并打印出来 dp[i]表示到包括第i个数的前i个的最长递增的长度 从数列从后往前找就好了 ,如果从前往后,前面的大数会覆盖掉后面的小数,就不对了 代码: 1 #inclu ...

  2. Vijos P1303 导弹拦截【最长上升子序列+DP】

    背景 实中编程者联盟为了培养技术精湛的后备人才,必须从基础题开始训练. 描述 某国为了防御敌国的导弹袭击,研发出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度, ...

  3. HDU1257 最少拦截系统【最长上升子序列+DP】

    问题链接:HDU1257 最少拦截系统. 问题简述:参见上述问题描述. 问题分析:这个问题的本质是求最长上升子序列.与<POJ2533 Longest Ordered Subsequence[最 ...

  4. Vijos P1571 笨笨的导弹攻击【最长上升子序列+DP】

    背景 在那遥远的地方,有个小目标-- 笨笨:导弹准备! 路人甲:(这么小个目标都要欺负--)老大,导弹只有一部分可以用-- 笨笨:不管那么多,有多少就打多少! 描述 为了彻底打击目标,笨笨要使用足够多 ...

  5. Bailian2806 公共子序列【最长公共子序列+DP】

    2806:公共子序列 描述 我们称序列Z = < z1, z2, -, zk >是序列X = < x1, x2, -, xm >的子序列当且仅当存在 严格上升 的序列< ...

  6. NUC1776 Tiling Up Blocks【二维最长上升子序列+DP】

    Tiling Up Blocks 时间限制: 1000ms 内存限制: 10000KB 通过次数: 2总提交次数: 2 问题描述 Michael The Kid receives an interes ...

  7. HDU1087 Super Jumping! Jumping! Jumping!【最长上升子序列+DP】

    问题链接:HDU1087 Super Jumping! Jumping! Jumping!. 问题简述:参见上述问题描述. 问题分析: 这是一个最长上升子序列问题,使用DP算法实现. 定义dp[i]= ...

  8. HDOJ---1257 最少拦截系统[线性DP]+NYOJ---拦截导弹[输出最长单调子序列的长度]

    最少拦截系统 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub ...

  9. 清橙 A1120 拦截导弹 -- 动态规划(最长上升子序列)

    题目地址:http://oj.tsinsen.com/A1120 问题描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但 ...

最新文章

  1. win10设置默认打开方式
  2. 类选择器选择非唯一属性无法精确取值的问题
  3. 【Linux】crontab 定时任务 遇到几个问题
  4. 微软发布 Microsoft SoftGrid 4.1 SP1 及 4.2 累计更新补丁
  5. maven项目的目录结构
  6. php上传预览源码,php批量上传五[带预览]-PHP源码
  7. Activiti - 新一代的开源BPM引擎
  8. 喵喵的支付宝小程序登录
  9. 20161114课堂笔记
  10. Java从入门到精通 第21章 Annotation
  11. 人工智能和金融是天作之合的5个理由
  12. SP刷机工具错误信息
  13. 中国境内哪个chatGPT最好用
  14. 西瓜视频直播助手下载与安装过程 0523
  15. AXURE实现QQ音乐APP部分原型功能
  16. 关注ERP项目中的隐含成本
  17. 农业无人机的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  18. find ? find !
  19. javascript小技巧
  20. 那些工作后补过的大学知识

热门文章

  1. Ubuntu snap 定制内核插件
  2. SQL那些事儿(十四)--C#调用oracle存储过程(查询非查询and有参无参)深度好文
  3. .NET Core 3.0带来桌面支持(Windows Only)
  4. Golang的演化历程
  5. 隐藏窗体关闭按钮_VB编程(五)按钮和窗体
  6. 佛祖保佑,永无BUG
  7. 详解:Oracle数据库介绍 、字符、类型、语言
  8. html页面的盒子边框怎么做的,HTML+CSS入门 用三层盒子结构实现多边框详解
  9. 登陆界面网页代码_Opera Touch移动浏览器登陆iPad 并引入隐私浏览模式
  10. 协程(Python)