P2215 [HAOI2007] 上升序列
题目大意
给你一个长度为 \(n\) 的序列,要求回答 \(m\) 次询问,询问序列中下标字典序最小的长度为 \(l\) 的严格上升子序列。
\(1 \le n \le 10000, 1 \le m \le 1000\)。
题目思路
简单益智题。
我们先用线段树维护出 \(f_i\) 表示以 \(i\) 开头的最长上升子序列的长度。
然后我们这么贪心的去做:
- 如果当前以当前下标为开头的最长上升子序列长度大于等于 \(l\),并且当前下标表示的数比答案序列中最后一个数要大,那么加入答案中。
不难证明这样做一定能保证字典序最小。

浙公网安备 33010602011771号