loading

严肃学习 segbeats

虚假的省流:有最值和区间加操作是 2log,否则是 1log。

真正的省流:草拟吗,不学了

区间最值操作

听说好多 segbeats 都是从区间最值操作开始讲的。

某神秘例题

题意:给序列,操作有区间取 min、区间加、区间求和和区间求 max。

我们引入一个思想,这个思想是这样的,以此题为例,我们维护最大值 \(mx\)、严格次大值 \(exmx\)、最大值的个数 \(cnt\),那么对 \(v\) 取 min 的时候,如果 \(v\ge mx\) 显然无事发生;若 \(exmx< v<mn\) 时,显然我们只操作最大值,可以看做对最大值的区间加,打个 tag 即可;若 \(v\le exmx\),暴力递归下去直到区间的 \(exmx\ge v\) 为止。注意后面这里的 \(\le\) 号,换成小于号是不行的,因为等于时会改变 \(cnt\),所以得递归下去。

可以证明,上述做法的复杂度是 \(O(n\log^2n)\)。这里本该有一段证明,但是我题快 tm 写不完了,所以就不证了。

P10639 BZOJ4695 最假女选手

同时有取 max min 和求 max min,就是上道题的 ultra pro max 版本,直接套用上题的做法即可。反正又难写细节又多又不好调。

区间历史最值

草拟吗,不学了。

posted @ 2026-01-16 20:09  dcytrl  阅读(0)  评论(0)    收藏  举报