二維樹狀陣列模板

2021-08-25 17:27:00 字數 616 閱讀 4293

二維樹狀陣列就是求矩陣和。

一維樹狀陣列中: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...