动态规划——导弹拦截

P1020 [NOIP1999 普及组] 导弹拦截

解题思路


首先这道题我们需要求出最长的上升序列 和最长的非上升序列

主要用到了lower_bound 和upper_bound函数 ,前者包括了大于等于,而后者仅含大于

代码实现

#define _CRT_SECURE_NO_WARNINGS
#include <bits/stdc++.h>
#define rep(i,s,n) for(long long i=s;i<n;i++)
#define reb(i,d,n) for(long long i=n;i>=d;i--)
using namespace std;
const int SIZE = 100001;
int res[SIZE];
int dp1[SIZE];
int dp2[SIZE];
inline bool read(int& x) {char c = getchar();if (c == EOF)return false;while (c > '9' || c < '0')c = getchar();while (c >= '0' && c <= '9') {x = (x << 1) + (x << 3) + (c ^ 48);c = getchar();}return true;
}
signed main()
{ios::sync_with_stdio(false);int i = 0;cin >> res[0];int len1 = 1;int len2 = 1;dp1[1] = res[0];dp2[1] = res[0];int temp;while (cin>>temp){if (temp <= dp1[len1]){dp1[++len1] = temp;}else{*upper_bound(dp1+1, dp1+1 + len1 , temp, greater<int>()) = temp;//dp1中第一个小于temp得数 是一个下降序列}if (temp > dp2[len2]){dp2[++len2] = temp;}else{*lower_bound(dp2+1, dp2 +1+ len2 , temp) = temp;//dp2中第一个大于等于temp得数 是一个上升序列}}cout << len1 << endl << len2;return 0;}

注意

输入 cin>>temp 需要注意

upper_bound greater 是指第一个比该数小的位置

总的来说upper和lower需要 和前面是否有等于号匹配

动态规划——导弹拦截相关推荐

  1. 动态规划之——拦截导弹(nyoj79)

    问题描述: 拦截导弹 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 某国为了防御敌国的导弹袭击,发展中一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮 ...

  2. 动态规划练习1 [导弹拦截]

    [问题描述] 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然 它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度.某天,雷达捕捉到 敌 ...

  3. 【动态规划】拦截导弹问题——算法设计与分析慕课作业

    题目内容: 某国为了防御敌国的导弹袭击,开发出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度.某天,雷达捕捉到敌国的导 ...

  4. JZOJ 5354. 【NOIP2017提高A组模拟9.9】导弹拦截

    Description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统. 敌国的导弹形成了立体打击,每个导弹可以抽象成一个三维空间中的点(x; y; z).拦截系统发射的炮弹也很好地应对了这种情况 ...

  5. 洛谷P1020/CODEVS1044 导弹拦截(拦截导弹)

    本题地址: http://www.luogu.org/problem/show?pid=1020 题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的 ...

  6. 导弹拦截(pascal)

    导弹拦截 [问题描述] 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度.某天,雷达捕 ...

  7. [NOIP 2010普及组 No.3] 导弹拦截

    [NOIP 2010普及组 No.3] 导弹拦截 [题目描述] 经过11 年的韬光养晦,帝国研发出了一种新的导弹拦截系统,凡是与它的距离不超过其工作半径的导弹都能够被它成功拦截.当工作半径为0 时,则 ...

  8. P1020 导弹拦截(最长不上升序列+二分)

    题目链接 题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度.某天,雷达捕捉到 ...

  9. P1020 导弹拦截(LIS)

    题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度.某天,雷达捕捉到敌国的导弹 ...

最新文章

  1. C#注解属性的感想一:
  2. 文档扫描识别——OpenCV与C++实现OCR文字识别
  3. java 匿名访问权限_java-春季安全性allowAll()不允许匿名访问
  4. animate.css动画样式详解
  5. Struts2框架使用(十)之struts2的上传和下载
  6. 快速部署web项目上线云服务器
  7. 链表查找java_Java 实例 – 链表元素查找
  8. python的常量和变量_python中的常量和变量代码详解
  9. GAD游戏学院系列丛书发布,引爆峰会现场
  10. Java nextInt()函数
  11. 服务器安全-使用ipset 和iptables禁止国外IP访问
  12. 乐鑫esp8266学习rtos3.0笔记第10篇:内置仅1M的Esp8285,如何攻破最棘手的OTA问题,大大节省资源成本开发产品;
  13. 实用的智力测试智商提升微信小程序源码下载支持多种流量主
  14. 光纤中传导模式matlab仿真,光纤通信实验指导书
  15. 未来教育计算机二级题库如何更新,未来教育的计算机二级题库准吗?
  16. Android Studio使用天天模拟器运行Android程序
  17. 【雅思口语】安娜口语学习记录 Part2
  18. Linux Oracle install studing
  19. 关于交换数组元素的技术帖
  20. 06年底写的5年职业规划与珠海金山邮件面试题回复

热门文章

  1. ip地址、域名、DNS、URL的区别与联系
  2. family first.
  3. C#句柄的操作(鼠标移动、键盘点击、复制粘贴)
  4. JAVA 使用OrientDB(优化)
  5. seajs.use 用法
  6. ca i啊几次哦啊句iu家哦历史1
  7. 链条电动葫芦的导体结构
  8. 图灵语音机器人PHP源码,两个机器人聊天对话实现源码
  9. 互联网工作中工单答疑多引发的联想
  10. 【SSL1759】连通分量【五种方法】