最长不下降序列
查看 提交 统计 提问
总时间限制: 1500ms 内存限制: 65536kB
描述
设有由n个整数组成的数列,任意删掉若干后剩下的数列成为子序列。
如果子序列是严格不递减的,则成为不下降子序列。
求该数列的最长不下降子序列的长度。
并输出一组一组符合要求的最长子序列。
输入
两行
第一行n(1≤n≤10000)
第二行n个数,用空格隔开,范围均在(-1000到1000之间)
输出
两行
第一行:最长子序列长度
第二行:符合要求的一组最长子序列,两个数之间用空格隔开,行末不含空格
样例输入
14
3 7 9 16 38 24 27 38 44 49 21 52 63 15
样例输出
11
3 7 9 16 24 27 38 44 49 52 63
提示
dp
思路点拔:首先,本题是一道经典dp,不管是最长不下降序列,还是什么序列,状态转移方程都是f[i]=max(f[j]+1,f[i]),只是判断条件不相等,我就不全列举了,本题的判断条件为v[i]>=f[j],这样,长度就能对,但是&