【题解】CF1437E Make It Increasing 线段树、动态规划、LIS

题目链接

一个常见的转化:

  • 序列 \(a_i\) 严格单调递增等价于序列 \(a_i-i\) 非严格单调递增。

  • 将序列 \(a_i\) 修改一些元素使其严格单调递增等价于将序列 \(a_i-i\) 修改一些元素使其非严格单调递增。

接下来要考察的即将序列 \(\{d\}\) 修改成非严格单调递增的最小修改元素个数。

我们考察序列 \(\{d\}\) 中将其修改成非严格单调递增的方案中不动点的位置 \(pos_1.pos_2,pos_3....\) 发现其一定是序列 \(d\) 的一个非严格单调递增子序列。

\(b\) 中的位置将序列分成了若干独立段,那么转化后的问题即对于每个独立段求固定开头和结尾的最长不降子序列长度。

使用线段树优化转移,复杂度为 \(O(n\log n)\)

代码记录

posted @ 2021-10-29 15:37  Themaxmaxmax  阅读(34)  评论(0编辑  收藏  举报