啊考场上没想到。
直接二分答案,然后$nlogn$求解最长上升序列来$check$是否大于$K$即可。
然后恶心的是要求输出方案,而且。。。字典序最小。
我们考虑二分出答案之后求出方案。
$LIS$的过程其实类似于建树,我们要把当前的决策挂在当前树上某一深度的点中,字典序最小的方案下面。
那么当我们比较两个方案的时候,只需要求出他们在$LIS$树上的$LCA$,那么在$LCA$以上的部分完全相同,所以只需要比较他们在$LCA$一下的部分中最小值的大小,较小的更优,一边跑$LIS$一边跑倍增$LCA$即可。
复杂度$O(nlognlog88400+nlog^2n)$
原文地址:https://www.cnblogs.com/Lrefrain/p/11702737.html
时间: 2024-11-03 18:02:17