题目链接

题目

题目描述

某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。

输入导弹依次飞来的高度(雷达给出的高度数据是不大于30000的正整数),计算这套系统最多能拦截多少导弹,如果要拦截所有导弹最少要配备多少套这种导弹拦截系统。

输入描述

1行,若干个整数(个数≤100000)

输出描述

2行,每行一个整数,第一个数字表示这套系统最多能拦截多少导弹,第二个数字表示如果要拦截所有导弹最少要配备多少套这种导弹拦截系统。

示例1

输入

389 207 155 300 299 170 158 65

输出

6
2

题解

知识点:线性dp。

第一问没什么好说的,一个最长不上升子序列。

第二问用到dilworth定理:最长上升子序列的划分数 = 最长不上升子序列的长度。手玩理解一下就好,具体证明可以百度qwq。

这里要求最长不上升子序列的划分数,也就是求LCS的长度。

时间复杂度 \(O(n^2)\)

空间复杂度 \(O(n)\)

代码

#include <bits/stdc++.h>

using namespace std;

int a[100007], dp[100007];

int main() {
std::ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int n = 0;
while (cin >> a[n++]);
n--;
for (int i = 0;i < n;i++) {
dp[i] = 1;
for (int j = 0;j < i;j++)
if (a[i] <= a[j]) dp[i] = max(dp[i], dp[j] + 1);
}
int ans = 0;
for (int i = 0;i < n;i++) ans = max(ans, dp[i]);
cout << ans << '\n';
for (int i = 0;i < n;i++) {
dp[i] = 1;
for (int j = 0;j < i;j++)
if (a[i] > a[j]) dp[i] = max(dp[i], dp[j] + 1);
}
ans = 0;
for (int i = 0;i < n;i++) ans = max(ans, dp[i]);
cout << ans << '\n';
return 0;
}

NC16810 [NOIP1999]拦截导弹的更多相关文章

  1. 题目:[NOIP1999]拦截导弹(最长非递增子序列DP) O(n^2)和O(n*log(n))的两种做法

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

  2. 588. [NOIP1999] 拦截导弹

    588. [NOIP1999] 拦截导弹 ★  输入文件:missile.in  输出文件:missile.out  简单对比 时间限制:1 s 内存限制:128 MB 题目描述 某国为了防御敌国的导 ...

  3. [NOIP1999]拦截导弹

    1999年NOIP全国联赛提高组 题目描述 Description     某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但 ...

  4. RQNOJ PID217 / [NOIP1999]拦截导弹【n^2 / LIS】

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

  5. 一本通 1260:【例9.4】拦截导弹(Noip1999)

    拦截导弹(Noip1999) 经典dp题目,这个做法并非最优解,详细参考洛谷导弹拦截,想想200分的做法. #include <iostream> #include <cstdio& ...

  6. 拦截导弹问题(Noip1999)

    1322:[例6.4]拦截导弹问题(Noip1999) 时间限制: 1000 ms         内存限制: 65536 KB提交数: 3843     通过数: 1373 [题目描述] 某国为了防 ...

  7. 1260:【例9.4】拦截导弹(Noip1999)

    题目来源:http://ybt.ssoier.cn:8088/problem_show.php?pid=1260 1260:[例9.4]拦截导弹(Noip1999) 时间限制: 1000 ms     ...

  8. tyvj P1209 - 拦截导弹 平面图最小割&&模型转化

    P1209 - 拦截导弹 From admin    Normal (OI)总时限:6s    内存限制:128MB    代码长度限制:64KB 背景 Background 实中编程者联盟为了培养技 ...

  9. (Java实现) 拦截导弹

    1260:[例9.4]拦截导弹(Noip1999) 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 4063 通过数: 1477 [题目描述] 某国为了防御敌国的导弹袭击,发展出一 ...

  10. Java实现 蓝桥杯VIP 算法训练 拦截导弹

    1260:[例9.4]拦截导弹(Noip1999) 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 4063 通过数: 1477 [题目描述] 某国为了防御敌国的导弹袭击,发展出一 ...

随机推荐

  1. ThreadLocal应用及理解

    转载请注明出处: 1. 先展示threadLocal的一个简单封装,该封装用来在不同的请求线程中解析用户参数.在请求经过过滤器时, 对用户的信息进行设置入 ThreadLocalContext 中,可 ...

  2. 【SHELL】[ ]、[[ ]]条件判断结构

    输入参数包含 'arg-m' 时,会输出 Hit Arg-M 和 Hit Arg-N [[ ${EXEC_PARAMS[@]} =~ 'arg-m' ]] && echo " ...

  3. 【面试题精讲】你知道MySQL中有哪些隔离级别吗

    有时博客内容会有变动,首发博客是最新的,其他博客地址可能未同步,请认准https://blog.zysicyj.top 首发博客地址 系列文章地址 脏读(Dirty Read)是指一个事务读取到了另一 ...

  4. [转帖]【sql server安全】sql server连接加密,sql server SSL加密连接

    https://www.cnblogs.com/gered/p/13595098.html#_label1_0 MSSQL - 最佳实践 - 使用SSL加密连接 回到顶部 author: 风移 回到顶 ...

  5. 阿里云ECS自建K8S_IPV6重启后异常问题解决过程

    阿里云ECS自建K8S_IPV6重启后异常问题解决过程 背景 最近安装了一个单节点的K8S_IPV6 昨天不知道何故 突然宕机了. 然后只能在阿里云的控制台后台重启了ECS 启动之后看K8S的状态一开 ...

  6. [转帖]Oracle中有大量的sniped会话

    https://www.cnblogs.com/abclife/p/15699959.html 1 2 3 4 5 6 7 SQL> select status ,count(*) from g ...

  7. [转帖]LVS入门篇(四)之LVS实战

    LVS入门篇(四)之LVS实战 https://www.cnblogs.com/linuxk/p/9360922.html 一.LVS的NAT模式实战 1.环境说明: HOST OS role rem ...

  8. [转帖]redis进程绑定指定的CPU核

    文章系转载,便于分类和归纳,源文地址:https://blog.csdn.net/youlinhuanyan/article/details/99671878 1)查看某服务的pid $ ps -au ...

  9. [转帖]013 Linux 搞懂「文件所属者更改及权限的赋予」从未如此简单 (chmod、chgrp、chown)

    https://my.oschina.net/u/3113381/blog/5435014   01 一图详解「ls -l」 02 两种符号区分表示文件和目录 -(横线) # 表示非目录文件 d # ...

  10. CentOS firewall简单总结

    CentOS firewall简单总结 简介 防火墙是安全的重要道防线. 硬件防火墙一般部署再内网的边界区域.作为最外层的防护. 但是一般硬件的防火墙会比较宽松. 不然会导致很多业务不可用 软件防火墙 ...