背景

在那遥远的地方,有个小目标~~
笨笨:导弹准备!
路人甲:(这么小个目标都要欺负……)老大,导弹只有一部分可以用……
笨笨:不管那么多,有多少就打多少!

描述

为了彻底打击目标,笨笨要使用足够多的导弹去打击目标。

每个导弹有各自的编号,这些编号有可能重复……
现在需要将其中一部分导弹按顺序抽调出来并按原顺序排列,使得这些被抽取出来的导弹奇数位置的编号大于其前一个的编号,偶数位置的编号小于其前一个的编号,这样子才能够正常使用这些导弹攻击目标。

笨笨想知道,他最多能够正常使用多少导弹攻击目标?

格式

输入格式

第一行一个数n(0<n<=10000),表示导弹总数。

第二行n个数,按顺序表示各个导弹的编号。

输出格式

输出只有一个数,即最多能正常攻击的导弹总数。

样例1

样例输入1

4
5 3 2 4

样例输出1

3

限制

1s

来源

经典DP

问题链接:Vijos P1571 笨笨的导弹攻击

问题分析:这是一个最长上升子序列变形的问题。

程序说明:(略)

题记:(略)

参考链接:POJ2533 Longest Ordered Subsequence【最长上升子序列+DP】

AC的C++程序如下:

#include<iostream>
#include<cstdio>using namespace std;const int N = 10000;
int a[N+1], dp[N+1];int main()
{int n;while (scanf("%d", &n) != EOF) {int ans = 1;for (int i=1; i<=n; i++)scanf("%d", &a[i]);dp[1] = a[1];for (int i=2; i<=n; i++) {if (ans % 2) {if (a[i] >= dp[ans])dp[ans] = a[i];elsedp[++ans] = a[i];} else {if (a[i] <= dp[ans])dp[ans] = a[i];elsedp[++ans] = a[i];}}printf("%d\n", ans);}return 0;
}

Vijos P1571 笨笨的导弹攻击【最长上升子序列+DP】相关推荐

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

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

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

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

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

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

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

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

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

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

  6. NYOJ 36 最长公共子序列 dp

    最长公共子序列 点击打开链接时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列. tip:最长公共子序 ...

  7. LeetCode 1035. 不相交的线(最长公共子序列DP)

    文章目录 1. 题目 2. 解题 1. 题目 我们在两条独立的水平线上按给定的顺序写下 A 和 B 中的整数. 现在,我们可以绘制一些连接两个数字 A[i] 和 B[j] 的直线,只要 A[i] == ...

  8. 51nod1134最长递增子序列(dp)

    题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1134 这里说下,最长上升子序列和最长不降子序列几乎一样,只是判 ...

  9. Bailian2945 导弹拦截【最长上升子序列+DP】

    2945:拦截导弹 总时间限制: 1000ms 内存限制: 65536kB 描述 某国为了防御敌国的导弹袭击,开发出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高 ...

最新文章

  1. Oracle经典教程学习笔记
  2. 三维球体换算到二维_AutoCAD三维入门,这些硬核干货要知道,看不懂建议备份收藏...
  3. Flutter AnimatedList 使用解析
  4. 众信旅游:旅游及相关产品会参与阿里双十一活动
  5. 这5条职场心机,句句真实,引发深思
  6. 利用matlab实现卷积实验报告,matlab卷积实验报告(共8篇).doc
  7. 【转】简洁帮助文档制作 EasyCHM V3.84 build545 下载(含破解及注册码)
  8. python excel转csv日期变数字_将Excel转换为CSV正确转换日期字段
  9. java 小说系统_java 实现小说管理系统
  10. 蓝牙协议之配对和绑定学习笔记
  11. 沉病孩子留遗嘱 父疏申请接济劫持红十字员农
  12. 51.Linux 什么是线程?
  13. squid笔记下载_Squid笔记
  14. 二阶求导 算法 实现 寻峰问题(转)
  15. 员工离职率预测,练手赛
  16. 犀利姐—林家小妹:将犀利进行到底!
  17. win10升级之后,Oracle服务没有了。。。
  18. android 图片合成
  19. 前端webpack打包配置
  20. Pyecharts基本图:仪表盘

热门文章

  1. Windows下配置nginx+php(wnmp)
  2. db_mysql.so_MySQL登陆时提示找不到到libmysqlclient.so.15
  3. hadoop中的合并(Combine)与归并(Merge)
  4. 数据结构中的头结点和头指针
  5. python数据分析与展示 嵩天_Python数据分析与展示第2周学习笔记(北理工 嵩天)...
  6. MySQL添加唯一约束和联合唯一约束(建表后添加)
  7. Phoenix的数据类型和操作符、函数
  8. Spark Streaming的介绍和IDEA操作
  9. linux压缩隐藏文件,Linux下查看压缩文件内容的10种方法(小结)
  10. //变量在scala中没有自增自减的操作