数据结构记录

询问区间的子区间

使用角平分线, 将区间看作点, 补齐询问为一个矩形

可以先用扫描线,发现右端点为一定值的区间特殊性, 后来加上二位数点啥的

考虑莫队, 变成前缀信息的差

可以对询问建立数据结构, 然后去更新询问的答案

动态k维问题 = 静态 \((k + 1)\) 维问题(可以帮助自己回忆一些静态做法)

差分

首先观察, 如果能差分就差分。

差分可以将多side减少, 甚至可以降下维度

gcd自带可差分性质

线段树

  • 对于一些使区间推平, 快速减小的考虑势能线段树
    雅礼集训 2018 Day7 A

  • 线段树可以一开始就补齐到 \(2^k\) 次幂, 这样每一个区间长度就是2的整数次幂。

扫描线

如果题目有两维, 可以试一试扫描线(对于单点询问一些时间的问题的话, 最好用数据结构维护时间维, 扫描线扫区间维)

  • 时间和序列都要扫一下

莫队

莫队复杂度 \(O(n\sqrt m)\)

莫队本质上是一个二维的扫描线, 高维问题离不开根号

posted @ 2021-03-15 23:41  Zcus  阅读(80)  评论(0)    收藏  举报