动态规划——导弹拦截
动态规划——导弹拦截
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)
题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度.某天,雷达捕捉到敌国的导弹 ...
最新文章
- php拍照从手机相册中选择,微信js-sdk预览图片接口及从拍照或手机相册中选图接口用法示例...
- python组合类型有哪三种_Python基础语法三组合数据类型
- 接口重复提交解决方案
- python基础语法-三大内建数据结构之字典(dict)
- VC中新建的类不见了的解决方法
- 技术员联盟win11系统64位专业版镜像v2021.08
- WinForm应用程序框架设计之WinAction(一:显示列表窗体)
- java 挥发注解_C中的挥发性预选赛
- 计算机毕业设计的步骤
- 关于KDIFF3的使用
- Python爬虫:爬取必应壁纸(可直接运行)
- ajax传参到后端 参数接收为空
- 曾经的荣誉,偶然被唤醒
- Spring Boot - 开启 HttpBasic 认证方式
- windows电脑系统自带的画图工具如何实现自由拼图
- Docker入门实战笔记
- java生成6随机数字和字母_Java生成含字母和数字的6位随机字符串
- XDOJ-折点计数-46
- 刘焕勇医学知识图图QASystemOnMedicalKG的构建试错过程
- Android8打印功能,[翻译]Android 8.1 默认打印服务的中间人攻击漏洞披露