二维树状数组和一维树状数组的原理一样;
首先,
一维树状数组的储存结构为:
C1 = A1
C2 = A1 + A2
C3 = A3
C4 = A1 + A2 + A3 + A4
C5 = A5
C6 = A5 + A6
C7 = A7
C8 = A1 + A2 + A3 + A4 + A5 + A6 + A7 + A8
……
C16 = A1 + A2 + A3 + A4 + A5 + A6 + A7 + A8 + A9 + A10 + A11 + A12 + A13 + A14 + A15 + A16
......
二维数组的第二维与一维树状数组的原理一样;
设二维树状数组为 C[ ] [ ] ;
设原始二维数组为:A[ ] [ ] = { {a11, a12, a13, a14, a15, a16, a17, a18, a19}, {a21, a22, a23, a24, a25, a26, a27, a28, a29}, {a31, a32, a33, a34, a35, a36, a37, a38, a39}, {a41, a42, a43, a44, a45, a46, a47, a48, a49}}
它所对应的二维树状数组为:
B[1]={a11, a11+