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 最长上升子序列的主要内容,如果未能解决你的问题,请参考以下文章