分析:

定义状态dp[i]表示长度为i的最长不下降子序列最大的那个数。

每次进来一个数直接找到dp数组第一个大于于它的数dp[x],并把dp[x - 1]修改成 那个数。就可以了

AC代码:

# include <iostream>
# include <cstdio>
# include <cstring>
# include <algorithm>
using namespace std;
const int N = 100012;
int dp[N],n,pre[N],x,y,xh[N],a[N];
void out(int k){if(k)out(pre[k]);else return;printf("%d ",a[k]);
}
int main(){memset(dp,0x3f3f3f3f,sizeof dp);for(int i = 1;i <= n;i++){scanf("%d",&a[i]);y = upper_bound(dp + 1,dp + n + 1,a[i]) - dp;dp[y] = a[i];xh[y] = i;pre[i] = xh[y - 1]; }int len = lower_bound(dp + 1,dp + n + 1,dp[0]) - dp - 1;printf("%d\n",len);out(xh[len]);return 0;
}

转载于:https://www.cnblogs.com/lzdhydzzh/p/7673831.html

最长不下降子序列 (O(nlogn)算法)相关推荐

  1. 最长不下降子序列O(NlogN) 输出序列

    文章目录 不输出序列的思路 输出序列 代码 例题:导弹拦截 不输出序列的思路 我们对于O(n2)O(n^2)O(n2)的最长不下降子序列十分熟悉了. #include <bits/stdc++. ...

  2. [Usaco2008 Feb]Eating Together麻烦的聚餐[最长不下降子序列]

    Description 为了避免餐厅过分拥挤,FJ要求奶牛们分3批就餐.每天晚饭前,奶牛们都会在餐厅前排队入内,按FJ的设想所有第3批就餐的奶牛排在队尾,队伍的前端由设定为第1批就餐的奶牛占据,中间的 ...

  3. 最长不下降子序列的O(n^2)算法和O(nlogn)算法

    转帖 最长不下降子序列的O(n^2)算法和O(nlogn)算法 最长不下降子序列(LIS:Longest Increasing Subsequence) //用句通俗的话说,我讲的很通俗易懂~~ 问题 ...

  4. 求序列最长不下降子序列_最长不下降子序列nlogn算法详解

    今天花了很长时间终于弄懂了这个算法--毕竟找一个好的讲解真的太难了,所以励志我要自己写一个好的讲解QAQ 这篇文章是在懂了这个问题n^2解决方案的基础上学习. 解决的问题:给定一个序列,求最长不下降子 ...

  5. 最长递增子序列 O(NlogN)算法

    最长递增子序列 O(NlogN)算法 今天回顾WOJ1398,发现了这个当时没有理解透彻的算法. 看了好久好久,现在终于想明白了. 试着把它写下来,让自己更明白. 最长递增子序列,Longest In ...

  6. 最长非下降子序列(O(nlogn))(offer收割)

    题目   如题 思路   核心思想是,维护一个数组ends,它记录了长度为k的子序列的末尾元素的最小值.听起来很抽象,我们不妨手动演示一遍整个过程.   假设数组a={2,9,4,27,29,15,7 ...

  7. 最长不下降子序列java代码_浅谈最长不下降子序列与最长上升子序列

    唔,最长不下降子序列与最长上升子序列曾是困扰蒟蒻多时的一个问题,应该也有一些人分不清这2个的求法吧. 首先n^2算法肯定是都能分清的,因为不下降和上升的区别是连续的2个能不能相等,只需要在判断的时候判 ...

  8. NLOG 最长不下降子序列

    LIS有N2的算法,还有NLOGN的算法,这里说一下NLOGN的算法. 我们设S[]为原始序列,F[i]为以S[i]结束的LIS的最大长度.在求LIS时,对于S[i],我们找一个最大的可能的F[j], ...

  9. 【P2766】 最长不下降子序列问题

    题目描述 «问题描述: 给定正整数序列x1,...,xn . (1)计算其最长不下降子序列的长度s. (2)计算从给定的序列中最多可取出多少个长度为s的不下降子序列. (3)如果允许在取出的序列中多次 ...

最新文章

  1. linux目录都是什么意思,linux中的基本的目录结构都是什么意思,初学者都应该有印象-tmp是什么文件...
  2. xilinxaxi ethernet 硬件时间戳告警
  3. 剑指offer 面试3题
  4. 3DSlicer22:Module-ExtensionWizard Build Install
  5. 直播|百度AI开发者大会深度学习直播课程表
  6. 解决Eclipse中SVN版本比较中文乱码问题
  7. 文本相似度-bm25算法原理及实现
  8. Javascript特效:上传图片格式判断(通过后缀)
  9. 数据分析可视化图表mysql_50个最有价值的数据可视化图表
  10. CSV写入时指定表头
  11. php中文网怎么修改头像,thinkphp 头像上传在线剪切编辑问题 (使用美图秀秀头像编辑器组件)...
  12. 科尼数字科技张彬:云设计系统助力行业数字化转型
  13. Ubuntu 20.04 从零开始安装MySQL 8.0并重置root密码
  14. linux修改内核logo,Linux内核开发-修改开机Logo
  15. 实验7-3-5 输出大写英文字母(15 分)
  16. C语言指针(函数指针数组,二级指针)
  17. 微信开发者模式php,php 开启微信公众号开发者模式
  18. 网络流行语2016_“云”作为流行语
  19. 【笔记】因子投资:方法与实践
  20. 今日头条能干掉微信么? | 畅言

热门文章

  1. python123第三周测验答案_python123 测验3: 基本数据类型 (第3周)
  2. 奥特曼传奇英雄存档丢了怎么找回_热血传奇:道士最帅武器—玄天
  3. bin文件怎么转换成文本文档_Python脚本4:根据txt文本,批量创建文件夹
  4. SpringCloud的学习记录(1)
  5. 致我的2018 你好2019
  6. Shiro身份认证授权原理
  7. input的type属性的修改
  8. mysql批量生成修改表和列注释语句
  9. 关于 block的一些浅识
  10. 今天读了JDK1.8源码,知道了并行迭代器Spliterator