做题记录 25.3.26

\(\textcolor{purple}\odot\) CF1967D Long Way to be Non-decreasing

二分答案,转化为判定能否在 \(x\) 次操作内使 \(a\) 单调不降

扫描 \(a_{1\sim n}\),一个指针 \(p\) 初始指向 \(0\),表示当前的 \(a_i\) 的下界,若当前的 \(a_i\) 无法在 \(x\) 步内变为 \(p\) 则令 \(p\) 加一,若中途 \(p>m\) 则无解

建立 \(m\) 个点,连边 \(i\to b_i\),得到内向基环树森林,转化为 \(O(n\log m)\) 次求两点之间距离,通过预处理和分讨容易 \(O(1)\) 求出

总时间复杂度 \(O(\sum (m+n\log m))\)

代码

参考

posted @ 2025-03-27 07:05  Hstry  阅读(5)  评论(0)    收藏  举报