动态规划——导弹拦截
动态规划——导弹拦截
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需要 和前面是否有等于号匹配
动态规划——导弹拦截相关推荐
- 动态规划之——拦截导弹(nyoj79)
问题描述: 拦截导弹 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 某国为了防御敌国的导弹袭击,发展中一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮 ...
- 动态规划练习1 [导弹拦截]
[问题描述] 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然 它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度.某天,雷达捕捉到 敌 ...
- 【动态规划】拦截导弹问题——算法设计与分析慕课作业
题目内容: 某国为了防御敌国的导弹袭击,开发出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度.某天,雷达捕捉到敌国的导 ...
- JZOJ 5354. 【NOIP2017提高A组模拟9.9】导弹拦截
Description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统. 敌国的导弹形成了立体打击,每个导弹可以抽象成一个三维空间中的点(x; y; z).拦截系统发射的炮弹也很好地应对了这种情况 ...
- 洛谷P1020/CODEVS1044 导弹拦截(拦截导弹)
本题地址: http://www.luogu.org/problem/show?pid=1020 题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的 ...
- 导弹拦截(pascal)
导弹拦截 [问题描述] 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度.某天,雷达捕 ...
- [NOIP 2010普及组 No.3] 导弹拦截
[NOIP 2010普及组 No.3] 导弹拦截 [题目描述] 经过11 年的韬光养晦,帝国研发出了一种新的导弹拦截系统,凡是与它的距离不超过其工作半径的导弹都能够被它成功拦截.当工作半径为0 时,则 ...
- P1020 导弹拦截(最长不上升序列+二分)
题目链接 题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度.某天,雷达捕捉到 ...
- P1020 导弹拦截(LIS)
题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度.某天,雷达捕捉到敌国的导弹 ...
最新文章
- C#注解属性的感想一:
- 文档扫描识别——OpenCV与C++实现OCR文字识别
- java 匿名访问权限_java-春季安全性allowAll()不允许匿名访问
- animate.css动画样式详解
- Struts2框架使用(十)之struts2的上传和下载
- 快速部署web项目上线云服务器
- 链表查找java_Java 实例 – 链表元素查找
- python的常量和变量_python中的常量和变量代码详解
- GAD游戏学院系列丛书发布,引爆峰会现场
- Java nextInt()函数
- 服务器安全-使用ipset 和iptables禁止国外IP访问
- 乐鑫esp8266学习rtos3.0笔记第10篇:内置仅1M的Esp8285,如何攻破最棘手的OTA问题,大大节省资源成本开发产品;
- 实用的智力测试智商提升微信小程序源码下载支持多种流量主
- 光纤中传导模式matlab仿真,光纤通信实验指导书
- 未来教育计算机二级题库如何更新,未来教育的计算机二级题库准吗?
- Android Studio使用天天模拟器运行Android程序
- 【雅思口语】安娜口语学习记录 Part2
- Linux Oracle install studing
- 关于交换数组元素的技术帖
- 06年底写的5年职业规划与珠海金山邮件面试题回复