[AcWing] 1017. 怪盗基德的滑翔翼(C++实现)最长上升子序列模型

  • 1. 题目
  • 2. 读题(需要重点注意的东西)
  • 3. 解法
  • 4. 可能有帮助的前置习题
  • 5. 所用到的数据结构与算法思想
  • 6. 总结

1. 题目



2. 读题(需要重点注意的东西)

读题:

  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++实现)最长上升子序列模型相关推荐

  1. AcWing 1017 怪盗基德的滑翔翼

    题目描述: 怪盗基德是一个充满传奇色彩的怪盗,专门以珠宝为目标的超级盗窃犯. 而他最为突出的地方,就是他每次都能逃脱中村警部的重重围堵,而这也很大程度上是多亏了他随身携带的便于操作的滑翔翼. 有一天, ...

  2. AcWing 1017. 怪盗基德的滑翔翼

    怪盗基德是一个充满传奇色彩的怪盗,专门以珠宝为目标的超级盗窃犯. 而他最为突出的地方,就是他每次都能逃脱中村警部的重重围堵,而这也很大程度上是多亏了他随身携带的便于操作的滑翔翼. 有一天,怪盗基德像往 ...

  3. 怪盗基德的滑翔翼 线性DP 最长上升子序列

  4. [AcWing] 1012. 友好城市(C++实现)最长上升子序列模型、较为特殊

    [AcWing] 1012. 友好城市(C++实现)最长上升子序列模型 1. 题目 2. 读题(需要重点注意的东西) 3. 解法 4. 可能有帮助的前置习题 5. 所用到的数据结构与算法思想 6. 总 ...

  5. 1286:怪盗基德的滑翔翼(错)

    /* 1286:怪盗基德的滑翔翼(错) http://ybt.ssoier.cn:8088/problem_show.php?pid=1286 请找出此程序的问题  */ #include<bi ...

  6. 1286:怪盗基德的滑翔翼-2019-07-03(《信息学奥赛一本通》)

    /* 1286:怪盗基德的滑翔翼-2019-07-03(支扬帆) http://ybt.ssoier.cn:8088/problem_show.php?pid=1286 */ #include < ...

  7. C++动态规划算法之怪盗基德的滑翔翼

    怪盗基德的滑翔翼 Description 怪盗基德是一个充满传奇色彩的怪盗,专门以珠宝为目标的超级盗窃犯.而他最为突出的地方,就是他每次都能逃脱中村警部的重重围堵,而这也很大程度上是多亏了他随身携带的 ...

  8. 2017北大信科夏令营机试E:怪盗基德的滑翔翼

    E:怪盗基德的滑翔翼 查看 提交 统计 提问 总时间限制:  1000ms  内存限制:  65536kB 描述 怪盗基德是一个充满传奇色彩的怪盗,专门以珠宝为目标的超级盗窃犯.而他最为突出的地方,就 ...

  9. 小码王(洛谷)怪盗基德的滑翔翼

    [DP]怪盗基德的滑翔翼 题目背景 怪盗基德是一个充满传奇色彩的怪盗,专门以珠宝为目标的超级盗窃犯.而他最为突出的地方,就是他每次都能逃脱中村警部的重重围堵,而这也很大程度上是多亏了他随身携带的便于操 ...

  10. 最长上升子序列模型 AcWing 1010. 拦截导弹

    最长上升子序列模型 AcWing 1010. 拦截导弹 原题链接 AcWing 1010. 拦截导弹 算法标签 DP 线性DP 最长上升子序列 思路 摘自该题解 代码 #include<bits ...

最新文章

  1. 分享一例脚本发版和tomcat重启脚本
  2. jdbc connection为什么放在webINF的lib里面
  3. DIOCP 运作核心探密
  4. C#调用 Halcon引擎执行代码
  5. [心得]Ubuntu無法ssh登入
  6. java中除了跟数据相关的知识_Java的基本数据类型及知识介绍
  7. Linux:shell脚本命令: /dev/null 21 的理解
  8. dede plus ad js.php,织梦程序中plus文件作用介绍及安全设置
  9. zlib.h: 没有那个文件或目录
  10. [one day one question] GIF动画为什么只动一次不能循环
  11. IDEA 工具从Json自动生成JavaBean
  12. puttygen(puttygen)
  13. Android9.0 PM机制系列(二)PackageInstaller安装APK
  14. 支持向量回归(SVR)数据预测
  15. 输出dom对象的HTML,console 输出 DOM 对象
  16. html制作备案表格代码,如何在首页中插入备案编号HTML代码
  17. 论文的章节有重复率的要求吗?
  18. 从文本文件读取数据方法
  19. **薛定谔名著《生命是什么》体会**
  20. PCIE调试笔记理解--TLP理解

热门文章

  1. ACM 6174问题Java解决
  2. Heartbeat配置方案
  3. 一些.NET的开源项目资料
  4. 体验更简单的 DM —— v1.0.2
  5. 免ajax省市三级联动:http://runjs.cn/detail/rcsqficf
  6. 智能家居内网服务器,手把手教你搭建自己的智能家居IOT系统
  7. windows 安装应用时 弹出 another installation inprogress.you must complete that installation before continu
  8. 蒋鑫鸿:9.7国际黄金、纸白银行情走势分析、原油操作建议
  9. You-Get的安装与使用
  10. 弘辽科技:多多进宝怎么找团长?多多进宝怎么找推手推广?