动态规划——导弹拦截

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. php拍照从手机相册中选择,微信js-sdk预览图片接口及从拍照或手机相册中选图接口用法示例...
  2. python组合类型有哪三种_Python基础语法三组合数据类型
  3. 接口重复提交解决方案
  4. python基础语法-三大内建数据结构之字典(dict)
  5. VC中新建的类不见了的解决方法
  6. 技术员联盟win11系统64位专业版镜像v2021.08
  7. WinForm应用程序框架设计之WinAction(一:显示列表窗体)
  8. java 挥发注解_C中的挥发性预选赛
  9. 计算机毕业设计的步骤
  10. 关于KDIFF3的使用
  11. Python爬虫:爬取必应壁纸(可直接运行)
  12. ajax传参到后端 参数接收为空
  13. 曾经的荣誉,偶然被唤醒
  14. Spring Boot - 开启 HttpBasic 认证方式
  15. windows电脑系统自带的画图工具如何实现自由拼图
  16. Docker入门实战笔记
  17. java生成6随机数字和字母_Java生成含字母和数字的6位随机字符串
  18. XDOJ-折点计数-46
  19. 刘焕勇医学知识图图QASystemOnMedicalKG的构建试错过程
  20. Android8打印功能,[翻译]Android 8.1 默认打印服务的中间人攻击漏洞披露

热门文章

  1. MySQL批量修改时间字段
  2. 电脑Win11安装Autocad出现错误要如何处理
  3. windows查看电脑或设备序列号
  4. 跨模态检索论文阅读:Context-Aware Attention Network for Image-Text Retrieval
  5. ES6之for...of和for...in
  6. AcWing:哈希表
  7. 高并发大流量情况下带来的海量数据分库分表的正确姿势
  8. JavaScript基础教程——入门必看篇
  9. 京津冀首个区块链产业园落户曹妃甸
  10. spring aop 统一捕获异常