[AcWing] 1017. 怪盗基德的滑翔翼(C++实现)最长上升子序列模型
[AcWing] 1017. 怪盗基德的滑翔翼(C++实现)最长上升子序列模型
- 1. 题目
- 2. 读题(需要重点注意的东西)
- 3. 解法
- 4. 可能有帮助的前置习题
- 5. 所用到的数据结构与算法思想
- 6. 总结
1. 题目
2. 读题(需要重点注意的东西)
读题:
只能选择一个
方向下降
,可以选则正向
、可以选择反向
所选择的楼是呈现单调下降的(
反过来
就是单调上升
的)
即无论正向和反向,都可以看成求最长上升的子序列
,即在每个节点正向求一遍最长上升子序列、再反向求一遍最长上升子序列,最后取max得到最大的最长上升子序列即可。
思路:
在[AcWing] 897. 最长公共子序列(C++实现)线性dp例题的基础上,只需要在每个节点正向判断一次最长上升子序列,反向判断一次最长上升子序列,然后求出最大值即可。
3. 解法
---------------------------------------------------解法---------------------------------------------------
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;const int N = 110;
int n;
int h[N];
int f[N];int main(){int K;cin >> K;while(K--){scanf("%d", &n);for (int i = 0; i < n; i ++ ) scanf("%d", &h[i]);int res = 0;// 正向遍历一次求最长上升子序列for (int i = 0; i < n; i ++ ){f[i] = 1;for (int j = 0; j < i; j ++ )if (h[j] < h[i])f[i] = max(f[i], f[j] + 1);res = max(res, f[i]);}// 反向遍历一次求最长上升子序列memset(f, 0, sizeof f);for (int i = n - 1; i >= 0; i -- ){f[i] = 1;for (int j = n - 1; j > i; j -- )if (h[j] < h[i]) f[i] = max(f[i], f[j] + 1);res = max(res, f[i]);}cout << res << endl;}return 0;
}
可能存在的问题
4. 可能有帮助的前置习题
- [AcWing] 897. 最长公共子序列(C++实现)线性dp例题
5. 所用到的数据结构与算法思想
- 动态规划
- 最长上升子序列问题
6. 总结
最长上升子序列模型,可以发展为不同的最长上升子序列题目
最长上升子序列模型的特征:
1. 以每个点为终点都要判断一遍
2. 路径为一条上升子序列(或下降子序列)
[AcWing] 1017. 怪盗基德的滑翔翼(C++实现)最长上升子序列模型相关推荐
- AcWing 1017 怪盗基德的滑翔翼
题目描述: 怪盗基德是一个充满传奇色彩的怪盗,专门以珠宝为目标的超级盗窃犯. 而他最为突出的地方,就是他每次都能逃脱中村警部的重重围堵,而这也很大程度上是多亏了他随身携带的便于操作的滑翔翼. 有一天, ...
- AcWing 1017. 怪盗基德的滑翔翼
怪盗基德是一个充满传奇色彩的怪盗,专门以珠宝为目标的超级盗窃犯. 而他最为突出的地方,就是他每次都能逃脱中村警部的重重围堵,而这也很大程度上是多亏了他随身携带的便于操作的滑翔翼. 有一天,怪盗基德像往 ...
- 怪盗基德的滑翔翼 线性DP 最长上升子序列
- [AcWing] 1012. 友好城市(C++实现)最长上升子序列模型、较为特殊
[AcWing] 1012. 友好城市(C++实现)最长上升子序列模型 1. 题目 2. 读题(需要重点注意的东西) 3. 解法 4. 可能有帮助的前置习题 5. 所用到的数据结构与算法思想 6. 总 ...
- 1286:怪盗基德的滑翔翼(错)
/* 1286:怪盗基德的滑翔翼(错) http://ybt.ssoier.cn:8088/problem_show.php?pid=1286 请找出此程序的问题 */ #include<bi ...
- 1286:怪盗基德的滑翔翼-2019-07-03(《信息学奥赛一本通》)
/* 1286:怪盗基德的滑翔翼-2019-07-03(支扬帆) http://ybt.ssoier.cn:8088/problem_show.php?pid=1286 */ #include < ...
- C++动态规划算法之怪盗基德的滑翔翼
怪盗基德的滑翔翼 Description 怪盗基德是一个充满传奇色彩的怪盗,专门以珠宝为目标的超级盗窃犯.而他最为突出的地方,就是他每次都能逃脱中村警部的重重围堵,而这也很大程度上是多亏了他随身携带的 ...
- 2017北大信科夏令营机试E:怪盗基德的滑翔翼
E:怪盗基德的滑翔翼 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 怪盗基德是一个充满传奇色彩的怪盗,专门以珠宝为目标的超级盗窃犯.而他最为突出的地方,就 ...
- 小码王(洛谷)怪盗基德的滑翔翼
[DP]怪盗基德的滑翔翼 题目背景 怪盗基德是一个充满传奇色彩的怪盗,专门以珠宝为目标的超级盗窃犯.而他最为突出的地方,就是他每次都能逃脱中村警部的重重围堵,而这也很大程度上是多亏了他随身携带的便于操 ...
- 最长上升子序列模型 AcWing 1010. 拦截导弹
最长上升子序列模型 AcWing 1010. 拦截导弹 原题链接 AcWing 1010. 拦截导弹 算法标签 DP 线性DP 最长上升子序列 思路 摘自该题解 代码 #include<bits ...
最新文章
- 分享一例脚本发版和tomcat重启脚本
- jdbc connection为什么放在webINF的lib里面
- DIOCP 运作核心探密
- C#调用 Halcon引擎执行代码
- [心得]Ubuntu無法ssh登入
- java中除了跟数据相关的知识_Java的基本数据类型及知识介绍
- Linux:shell脚本命令: /dev/null 21 的理解
- dede plus ad js.php,织梦程序中plus文件作用介绍及安全设置
- zlib.h: 没有那个文件或目录
- [one day one question] GIF动画为什么只动一次不能循环
- IDEA 工具从Json自动生成JavaBean
- puttygen(puttygen)
- Android9.0 PM机制系列(二)PackageInstaller安装APK
- 支持向量回归(SVR)数据预测
- 输出dom对象的HTML,console 输出 DOM 对象
- html制作备案表格代码,如何在首页中插入备案编号HTML代码
- 论文的章节有重复率的要求吗?
- 从文本文件读取数据方法
- **薛定谔名著《生命是什么》体会**
- PCIE调试笔记理解--TLP理解
热门文章
- ACM 6174问题Java解决
- Heartbeat配置方案
- 一些.NET的开源项目资料
- 体验更简单的 DM —— v1.0.2
- 免ajax省市三级联动:http://runjs.cn/detail/rcsqficf
- 智能家居内网服务器,手把手教你搭建自己的智能家居IOT系统
- windows 安装应用时 弹出 another installation inprogress.you must complete that installation before continu
- 蒋鑫鸿:9.7国际黄金、纸白银行情走势分析、原油操作建议
- You-Get的安装与使用
- 弘辽科技:多多进宝怎么找团长?多多进宝怎么找推手推广?