数状数组求解:
下图是数状数组C和原数组a
数状形数组的规律:
•
C1=a1
•
C2=a1+a2
•
C3=a3
•
C4=a1+a2+a3+a4
•
C5=a5
•
……
•
C8=a1+a2+a3+a4+a5+a6+a7+a8
•
……
•
C2n=a1+a2+….+a2^n
本质:对于序列a,数组C中的第x个元素为
C[x] = a[x – 2k+ 1] + … + a[x]
K
为i的二进制表示中末尾0的个数
//区间更新 多次单点更新
完整代码: