noi.ac #46 最长上升子序列

Posted shandongs1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了noi.ac #46 最长上升子序列相关的知识,希望对你有一定的参考价值。

(des)
长度为 (n) 的序列 (A),从中删去恰好 (k) 个元素(右边的元素往左边移动),记 (cnt) 为新

序列中 (Ai = i) 的元素个数(即权值与下标相同的元素的个数)。求 (cnt) 的最大值。

(sol)
(n ^ 2) dp
(f_i) 表示只保留 (i) 个的答案
转移
(f_j = max(f_j, f_{j-1} + (x == j), j = min(i, m) -> 1)

考虑 (i) 转移到 (j) 的条件 ((i < j);) (A_i < A_j)(A_j - A_i < j - i)
移项:(i - A_i <= j - A_j)(A_i < A_j)
转化为二维偏序问题
(i - A_i) 为第一关键字,(A_j) 为第二关键字对 (A) 排序
(i - A_i < j - A_j) 的条件一定满足
对第二维做 lcs 即可
时间复杂度 (O(nlogn))

以上是关于noi.ac #46 最长上升子序列的主要内容,如果未能解决你的问题,请参考以下文章

最长上升子序列的长度&最长上升子序列的个数

最长上升子序列&&最长不下降子序列

LIS&LCS最长上升子序列,最长公共子序列

浅谈最长不下降子序列与最长上升子序列

LIS LCS 最长上升子序列 最长公共子序列 ...

LIS:最长上升子序列