#546. 最长不下降序列(LIS)
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)相关推荐
- 【动态规划】求最长不下降序列
求最长不下降序列求最长不下降序列求最长不下降序列 Description 设有n(n<=1000)个不相同的整数(小于32767)组成的数列,记为: a1,a2,-,an,其中任意两个数不相同. ...
- 1259:【例9.3】求最长不下降序列
http://ybt.ssoier.cn:8088/problem_show.php?pid=1259 /* [例3]求最长不下降序列03_AC 1259:[例9.3]求最长不下降序列 http:// ...
- 信息学奥赛一本通(1259:【例9.3】求最长不下降序列)
1259:[例9.3]求最长不下降序列 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 22932 通过数: 8116 Special Judge ...
- 求最长不下降序列(信息学奥赛一本通-T1259)
[题目描述] 设有由n(1≤n≤200)个不相同的整数组成的数列,记为:b(1).b(2).--.b(n)且b(i)≠b(j)(i≠j),若存在i1<i2<i3<-<ie 且有 ...
- 求最长不下降序列:逆推法
题意 当原始数列给出后,求出最长的不下降数列的长度. 分析 f[i]表示第i数为起点到第n个数的最长不下降长度(倒推法). F[i]= max{1, F[j] + 1} (j = i+1-n, 且A[ ...
- BZOJ 1852 [MexicoOI06]最长不下降序列(贪心+DP+线段树+离散化)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1852 [题目大意] 给你N对数A1,B1--An,Bn.要求你从中找出最多的对, 把它 ...
- 最长不下降子序列的O(n^2)算法和O(nlogn)算法
转帖 最长不下降子序列的O(n^2)算法和O(nlogn)算法 最长不下降子序列(LIS:Longest Increasing Subsequence) //用句通俗的话说,我讲的很通俗易懂~~ 问题 ...
- Vijous系列(1)LIS 最长不下降子序列的应用
1.P1028魔族密码 :https://vijos.org/p/1028 分析:最长不下降子序列的变形, 把数字类比成前缀问题 #include <cstdio> #include &l ...
- 求序列最长不下降子序列_最长不下降子序列nlogn算法详解
今天花了很长时间终于弄懂了这个算法--毕竟找一个好的讲解真的太难了,所以励志我要自己写一个好的讲解QAQ 这篇文章是在懂了这个问题n^2解决方案的基础上学习. 解决的问题:给定一个序列,求最长不下降子 ...
最新文章
- 上海.NET技术交流会
- jQuery 轮播图
- Windows安装TensorFlow
- android 模拟飞行,安卓版模拟飞行 X Plane 9试玩
- 【干货下载】大数据分析的四个关键环节
- JAVA正则表达式实例教程(转帖收藏)
- 后台服务系统之Dubbo协议
- Mock server的实现 - run Fiori application using mock data in offline mode
- linux i2c编程
- maven配置(myeclipse版)
- 如何打开浏览器的TLS 1.1 TLS 1.2支持
- SQL Server 复制, 集群
- Laravel 结合TCPDF生成PDF
- VOB视频格式转换器怎么把vob转换为mp3
- android自定义控件(星级评分)
- 阿里云天池龙珠计划 sql篇---stack06
- Ant design pro入坑指南
- 【考研英语-基础-长难句】复合句_定语从句【先行词 关系词】【限定_非限定性定语从句】层层递进关系
- 通过icon hash查IP地址
- 我可以用计算机做图吗,【我用Word和excel画图分别怎么制作】电脑excle怎样制作画图...
热门文章
- CTF easy_maze 一道简单的迷宫题。
- 欢聚时代java面试面经_欢聚时代(YY)校园招聘一面面经-java开发工程师
- APM中电机输出分析
- Plato Farm在Elephant Swap上铸造的ePLATO是什么?为何具备高溢价?
- 应届生就业难吗-誉天红帽RCHE学员就业分享
- Java面试宝典!java语言程序设计教程魏永红
- Camtasia Studio2023最新版喀秋莎电脑录制屏幕编辑器
- SetCapture ReleaseCapture
- 永磁同步电机——矢量控制(基于PI调节器)
- 【Marvelous Designer】布料预设汉化+布料模拟流程