前置技能
当然是线段树啦!
应用及实现
线段树可以维护一个序列。当需要维护一个矩阵(即二维平面)内的数值,或者有什么奇怪的区间操作时,就需要用到二维线段树,也就是线段树“套上”线段树。
当维护一个矩阵时,先建一颗“外面的”线段树来维护一维,对于每个“外面的”线段树的节点,建一颗“里面的”线段树来维护第二维。因为博主太懒没有写过这里就直接贴大佬的Blog好了。
模板
当维护区间奇怪操作时,一般的套路是外面套权值线段树,里面套区间线段树。比如说BZOJ3110(洛谷P3332)这道题,它要求我们维护n个位置,修改操作 [l,r] 为在 [l,r]