树状数组——《挑战程序设计竞赛》

树状数组(Binary Indexed Tree(B.I.T), Fenwick Tree)是一个查询和修改复杂度都为log(n)的数据结构。给一个初始值全为0的数列,$a_1, a_2, \cdots, a_n$,树状数组可以进行如下操作:

  • 给定i,计算$a_1+a_2+\cdots+a_i$
  • 给定i和x,执行$a_i+=x$