Loading

P2215 [HAOI2007] 上升序列

题目大意

给你一个长度为 \(n\) 的序列,要求回答 \(m\) 次询问,询问序列中下标字典序最小的长度为 \(l\) 的严格上升子序列。

\(1 \le n \le 10000, 1 \le m \le 1000\)

题目思路

简单益智题。

我们先用线段树维护出 \(f_i\) 表示以 \(i\) 开头的最长上升子序列的长度。

然后我们这么贪心的去做:

  • 如果当前以当前下标为开头的最长上升子序列长度大于等于 \(l\),并且当前下标表示的数比答案序列中最后一个数要大,那么加入答案中。

不难证明这样做一定能保证字典序最小。

posted @ 2024-02-29 16:00  Alexande  阅读(13)  评论(0)    收藏  举报