Background

Special for beginners, ^_^

Description

设有由 nn 个不相同的整数组成的数列,记为:b_1,b_2,\dots,b_nb1,b2,…,bn 且 b_i\neq b_j (i\neq j)bi=bj(i=j),若存在 i_1<i_2<i_3<\dots < i_ei1<i2<i3<⋯<ie 且有 b_{i_1}<b_{i_2}<\dots <b_{i_e}bi1<bi2<⋯<bie 则称为长度为 ee 的不下降序列。

当原数列出之后,求出最长的不下降序列。

例如 13,7,9,16,38,24,37,18,44,19,21,22,63,15。

例中 13,16,18,19,21,22,63 就是一个长度为 7 的不下降序列,同时也有 7,9,16,18,19,21,22,63 长度为 8 的不下降序列。

Format

Input

输入一行若干个整数,个数小于 100,取值小于 50000。

Output

输出两行。

第一行输出一个整数 e。

第二行输出 e 个整数,为最长不下降序列。

Samples

输入数据 1

300 250 275 252 200 138 245

Copy

输出数据 1

2
250 275 

Copy

Limitation

1s, 1024KiB for each test case.

/*
这是暴戾做法,时间较慢
#include <bits/stdc++.h>
using namespace std;const int N=107;int b[N][5];int main(){int n=0;int l,k;while(cin>>b[++n][1]){b[n][2]=1;b[n][3]=0;}n--;for(int i=1;i<=n;i++){cin>>b[i][1];b[i][2]=1;b[i][3]=0;}for(int i=n-1;i>=1;i--){l=0;k=0;for(int j=i+1;j<=n;j++){if((b[j][1]>b[i][1])&&(b[j][2]>l)){l=b[j][2];k=j;}if(l>0){b[i][2]=l+1;b[i][3]=k;}}}k=1;for(int j=1;j<=n;j++){if(b[j][2]>b[k][2])k=j;}cout<<b[k][2]<<endl;while(k){cout<<b[k][1]<<" ";k=b[k][3];}return 0;
}
下面是动态规划,比较快
*/
#include<iostream>
using namespace std;const int N=1007;int dp[N];int a[N];int num[N];int h,d,c;int w=1;int MXN;void print(int a){if(!dp[a])return;print(dp[a]);cout<<num[a]<<" ";
}int main() {while(cin>>num[++h]);for(int i=1;i<=h;++i){a[i]=1;MXN=0;for(int j=1;j<i;++j){if(a[j]>MXN&&num[j]<num[i]) {MXN=a[j];a[i]=a[j]+1;c=j;}}dp[i]=c;if(a[i]>d){d=a[i];w=i;}}cout<<d<<endl;print(w);return 0;
}

#546. 最长不下降序列(LIS)相关推荐

  1. 【动态规划】求最长不下降序列

    求最长不下降序列求最长不下降序列求最长不下降序列 Description 设有n(n<=1000)个不相同的整数(小于32767)组成的数列,记为: a1,a2,-,an,其中任意两个数不相同. ...

  2. 1259:【例9.3】求最长不下降序列

    http://ybt.ssoier.cn:8088/problem_show.php?pid=1259 /* [例3]求最长不下降序列03_AC 1259:[例9.3]求最长不下降序列 http:// ...

  3. 信息学奥赛一本通(1259:【例9.3】求最长不下降序列)

    1259:[例9.3]求最长不下降序列 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 22932     通过数: 8116     Special Judge ...

  4. 求最长不下降序列(信息学奥赛一本通-T1259)

    [题目描述] 设有由n(1≤n≤200)个不相同的整数组成的数列,记为:b(1).b(2).--.b(n)且b(i)≠b(j)(i≠j),若存在i1<i2<i3<-<ie 且有 ...

  5. 求最长不下降序列:逆推法

    题意 当原始数列给出后,求出最长的不下降数列的长度. 分析 f[i]表示第i数为起点到第n个数的最长不下降长度(倒推法). F[i]= max{1, F[j] + 1} (j = i+1-n, 且A[ ...

  6. BZOJ 1852 [MexicoOI06]最长不下降序列(贪心+DP+线段树+离散化)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1852 [题目大意] 给你N对数A1,B1--An,Bn.要求你从中找出最多的对, 把它 ...

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

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

  8. Vijous系列(1)LIS 最长不下降子序列的应用

    1.P1028魔族密码 :https://vijos.org/p/1028 分析:最长不下降子序列的变形, 把数字类比成前缀问题 #include <cstdio> #include &l ...

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

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

最新文章

  1. OLAP与OLTP介绍
  2. 零基础学习前端——html5
  3. 使用KNN对MNIST数据集进行实验
  4. 深入理解分布式技术 - 探究缓存穿透、缓存击穿、缓存雪崩解决方案
  5. Codeforces Round #486 (Div. 3)【完结】
  6. 鸡蛋中营养和脂质含量与降低LDL的食物
  7. uniapp 定时执行_ftp上传,完成ftp定时上传、下载只需3步
  8. Redis1 晨考题
  9. 在CentOS7上安装配置Corosync高可用集群过程全记录
  10. 网易严选退出双十一:“抵制”鼓吹过度消费
  11. js学习笔记 chapter5 引用类型
  12. Windows Internet Explorer 7 正式发布
  13. Java Timer
  14. win7设置背景色保护视力
  15. 校赛题解(部分)+反思
  16. python数独解题器_python 数独解
  17. 微软 Visual Studio 2019 正式发布
  18. daemon函数理解及参数使用——daemon后进程退出的原因
  19. 充电器pps功能是什么_联想推出45W拯救者充电器,支持PPS功能主打便携
  20. 重装Win7系统步骤【系统天地】

热门文章

  1. 数据脱敏和加密_数据脱敏和数据加密的区别
  2. 基于Junit的HttpUnit测试
  3. C#margin属性
  4. 流程图怎么画?超详细教程,各种高逼格流程图轻松搞定!
  5. 合并百度影音的离线数据 with python 2.2 bdv格式的更新
  6. js字符串split
  7. JavaScript中RegExp.$1是什么意思
  8. Web 3D智慧变电站三维工程进度系统-WebGL/Threejs实战开发
  9. 数据采集与管理【11】
  10. 大一计算机知识总结,大一大学计算机基础课程知识点汇总.doc