卧薪尝胆,厚积薄发。
K-LISs
Date: Sat Mar 30 15:31:03 CST 2019
In Category:
NoCategory
Description:
给定一个长度为
$n$
的序列
$a_i$
,从中选出
$k$
个递增子序列,使得总长度最大。
$1\leqslant n\leqslant 100000,1\leqslant k\leqslant 50$
Solution:
维护
$k$
个单调队列,依次考虑每个数,如果
$a_i>q_1\max$
就直接插入,否则像单调栈求
$LIS$
那样二分找到插入的位置,把这个位置上的数替换,然后在上面那一行继续这个操作。时间复杂度
$O(nk\log n)$
。
Code:
没有代码
In tag:
DP-LIS
Copyright © 2020
wjh15101051
ღゝ◡╹)ノ♡