[CF1132G] Greedy Subsequences 题解
显然每个数的后继是固定的。
处理每个区间,应该是每次加一个点,删一个点。但是我们发现原来的模型对于加点和删点并不友好,每次要影响到的点是散的,并不是一个连续的区间。
我们考虑将后继关系建出树形结构。具体地,将一个点的父亲设为其后继。没有后继的,向 \(0\) 号根结点连边。每个结点的深度就是其 Greedy Subsequence 的长度。
然后我们对树做出 DFS 序。我们发现,加一个点影响到的恰好是其子树内的点,即将子树内的点深度加一。
删一个点似乎不好直接在 DFS 序上维护。换个角度,我们将其深度修改为 \(-\infty\),让答案不可能取到它就行。
于是,我们需要一个支持区间修改(加一,及单点修改)、查询全局最大的数据结构。可以采用线段树。
时间复杂度 \(O(n\log n)\)。

浙公网安备 33010602011771号