区间最值操作
CF1572F
首先广播站 \(i\), 能覆盖到的肯定是相对于 \(i\) 的前缀, 我们可以维护一个 \(r_i\), 表示每个 \(i\) 可以覆盖到的右端点, 然后我们考虑segment beats, 考虑 \(max\) 变为 \(v\) 时, 我们维护最大值有多少个, 然后对应的 \(b\) 数组的 \([v + 1, max]\) 位置就区间减 \(cnt_max\), 然后这题就解决了。
CF793F
无修改, 可以优先考虑扫描线, 考虑扫 \(x\) 不好维护, 因为我们从 \(l + 1\) 扫到 \(l\) 的时候, 我们第一个开始的绳子会发生变化, 我们从 \(y\) 开始扫, 这样我们就只用考虑接上最后若干根绳子,我们维护 \(f_i\) 表示从 \(x == i\) 的答案, 考虑现在绳子右端点 \(r == y\) 的绳子, 如果 \(f_i \geq r\), 就都可以跑到 \(r\), 这就是将 \(i \in (1, l), a_i \geq l\) 的赋值为 \(r\), 这个可以用吉司机维护, 复杂度分析类似区间最值操作 \(O(nlogn)\)。
CF1919F2
减半警报器
减半警报器, 是把多个位置的高自由度通过划分为 \(logV\) 的值域转化成低自由度。 每次把剩余空间平均分配给每个位置。
cfgym102452 I
考虑这题十分的简单, 我们把 \(y\) 平均分给三个位置, 然后单点修改, 每个位置维护一个数据结构维护剩余空间, 然后单点修改就是每个位置的数据结构全局减, 然后把小于 0 的弹出, 在重新分配给其他位置即可, 考虑一种监视器最多分配 \(logV\) 次就会清零。
P7603 [THUPC2021] 鬼街
考虑这一道题和上一道题非常像, 考虑值域1e5, 最多有 6 个质因子, 所以修改操作就是对六个位置做操作, 查询和上一题没啥区别。