数据结构记录
询问区间的子区间
使用角平分线, 将区间看作点, 补齐询问为一个矩形
可以先用扫描线,发现右端点为一定值的区间特殊性, 后来加上二位数点啥的
考虑莫队, 变成前缀信息的差
可以对询问建立数据结构, 然后去更新询问的答案
动态k维问题 = 静态 \((k + 1)\) 维问题(可以帮助自己回忆一些静态做法)
差分
首先观察, 如果能差分就差分。
差分可以将多side减少, 甚至可以降下维度
gcd自带可差分性质
线段树
-
对于一些使区间推平, 快速减小的考虑势能线段树
雅礼集训 2018 Day7 A -
线段树可以一开始就补齐到 \(2^k\) 次幂, 这样每一个区间长度就是2的整数次幂。
扫描线
如果题目有两维, 可以试一试扫描线(对于单点询问一些时间的问题的话, 最好用数据结构维护时间维, 扫描线扫区间维)
- 时间和序列都要扫一下
莫队
莫队复杂度 \(O(n\sqrt m)\)
莫队本质上是一个二维的扫描线, 高维问题离不开根号

浙公网安备 33010602011771号