Description
有一个长度为 n n n 的整数序列,每次操作可以把一个元素修改为任意整数。求最少要几次操作,使得序列能满足:删除一个元素后是严格单调增的。
- 2 ≤ n ≤ 2 × 1 0 5 2\le n\le 2\times 10^5 2≤n≤2×105
- 1 ≤ a i ≤ 1 0 9 1\le a_i\le 10^9 1≤ai≤109
Solution
要求最小修改次数,我们不妨考虑求最大保留元素个数。
这样其实类似于求最长上升子序列,但是因为要求严格单增且必须是整数,所以又不能直接套用最长上升子序列。
先考虑直接构造严格单增序列,我们思考什么情况下两个元素可以同时保留。
假设两个元素下标分别为 j j j 和 i i i, j < i j<i j<i。那么它们中间会有 i − j − 1 i-j-1 i−j−1 个严格单增的整数,所以要满足:
∀ i , j a i − a j ≥ i − j \forall i,j\quad a_i-a_j\ge i-j ∀i,jai−aj≥i−</