我为啥做不出题??

收录一些我做不出来的题目。

CF1136E

这几把什么题目??

有取 \(\max\) 还有神秘 \(+k_i\) 看起来很难做啊,想了半个小时完全没思路。

你发现思维的卡点在于,你完全无法维护一个任意的向前取 \(\max\) 状物。这个时候我们需要一个具有单调性的东西。

\(b_i = a_i - \sum\limits_{j=1}^{i-1} k_j\),我们又有 \(a_{i-1} + k_{i-1} \le a_i\),代入:\(b_{i-1} + \sum\limits_{j=1}^{i-1} k_j \le b_i + \sum \limits_{j=1}^{i-1} k_j\),得到 \(b_{i-1} \le b_i\)

因此我们使用区间覆盖区间求和的线段树维护 \(b\),再维护 \(k\) 的二次前缀和即可。

晚上询问了 tml,他给出了一个另类做法:

在差分数组上考虑,我们维护那些 \(a_i - a_{i-1} = k_{i-1}\) 的连续段,不难发现一次单点修改仅仅会破坏 \(O(1)\) 个连续段,修改每次往后暴力跳连续段,若不合法就退出,否则合并两个连续段。均摊下来,合并操作是 \(O(n+m)\) 的。使用线段树维护区间和,复杂度单 \(\log\)

posted @ 2025-12-16 20:43  luqyou  阅读(4)  评论(0)    收藏  举报