众所周知树状数组是一种秒天秒地的数据结构 操作简单代码短常数小 洛谷日报甚至提出过树状数组还可以代替平衡树来使用
但是它有一个弊端 就是对于值域较大并且强制在线的题目而言 无法采用权值树状数组 但是这种说法是有问题的
假设这个值域为[1,109] 树状数组的核心在于lowbit函数 每次查询修改等操作只会用到最多 32 个数 如果出题人对线段树/平衡树稍微友好一些的话 询问次数应当在 2×105 之内 那么实际上整个树状数组只会用到 6.4×106 个数
如果空间在256MB的话 实际上是可以支持使用 3.2×107 个int的空间的 那为什么不可以用一个unordered_map来代替普通数组呢?