「考试」老司机的狂欢

啊考场上没想到。

直接二分答案,然后$nlogn$求解最长上升序列来$check$是否大于$K$即可。

然后恶心的是要求输出方案,而且。。。字典序最小。

我们考虑二分出答案之后求出方案。

$LIS$的过程其实类似于建树,我们要把当前的决策挂在当前树上某一深度的点中,字典序最小的方案下面。

那么当我们比较两个方案的时候,只需要求出他们在$LIS$树上的$LCA$,那么在$LCA$以上的部分完全相同,所以只需要比较他们在$LCA$一下的部分中最小值的大小,较小的更优,一边跑$LIS$一边跑倍增$LCA$即可。

复杂度$O(nlognlog88400+nlog^2n)$

posted @ 2019-10-19 08:06  Lrefrain  阅读(219)  评论(0编辑  收藏  举报