$DeclareMathOperator{lowbit}{lowbit}$
对于正向树状数组,$a_i$ 表示 区间 $(i - lowbit(i), i]$ 中的信息,对于反向树状数组 $a_i$ 表示区间 $[i, i+lowbit(i))$ 中的信息。
正向树状数组支持查询区间 $[1,i]$ 中的信息,反向树状数组支持查询区间 $[i, n]$ 中的信息,其中 $n$ 表示数组长度。
正向树状数组查询时是不断地 $i gets i - lowbit(i)$,更新时是不断地 $ i gets i + lowbit(i)$;
反向树状数组正好反过来,查询时是不断地 $ i gets i + lowbit(i) $,更新时是不断地 $ i gets i - lowbit(i) $ 。