二維樹狀陣列就是求矩陣和。
一維樹狀陣列中:c[1] = a1, c[2] = a1 + a2, c[3] = a3;
記:b[1]= 這是第一行的一維樹狀陣列
b[2]= 這是第二行的一維樹狀陣列
則c[1][1] = a11, c[1][2] = a11 + a12, c[1][3] = a13;模擬一維,可知c[i]就是第 i 行的一維樹狀陣列。
則c[1][1] = a11, c[2][1] = a11 + a21, c[3][1] = a31;模擬一維,可知c[j]就是第 j 列的一維樹狀陣列。
上面的詳細版本。
樹狀陣列的集合。神犇
//關鍵在於理解c[i]是第i行的一維樹狀陣列,c[j]是第j列的樹狀陣列
#define lowbit(x) x&(-x)
void update(int x, int y, int d)
x += lowbit(x); }}
int sum(int x, int y)//求左上角為(1,1)右下角為(x,y) 的矩陣和
x -= lowbit(x);
} }//求(x0,y0)到(x,y)的矩陣和就是做差分了
樹狀陣列 二維樹狀陣列模板
樹狀陣列模板 int lowbit int x int add int x,int val int que int x 模板題 題解 include include include using namespace std int c 300000 rank 300000 int n int lowb...
(一維 二維)樹狀陣列模板
一維或二維的區間修改都用到了差分的思想 詳細講解 1.單點修改 區間查詢 int lowbit int x void add int x,int v 給x位置加上v int ask int x 求字首和 return ans int range ask int l,int r 2.區間修改 單點查詢...
二維,三維樹狀陣列模板
二維樹狀陣列,update x,y 是更新 x,y 然後維護 x,y 右下角的矩陣,sum x,y 是求 1,1 到 x y 這個矩陣內所有元素的和。當然也可以用來求任意矩陣的值。例如求矩陣 x1,y1 到 x2,y2 的值,那麼直接sum x2,y2 sum x1 1 y2 sum x2 y1 1...