樹狀陣列模版

2021-05-17 21:56:17 字數 446 閱讀 6290

1.一維樹狀陣列

// 獲得2^k

public static int lowbit(int i)

//修改結點

public static void add(int i, int value)

}//求和

public static int getsum(int i)

return sum;

}2.二維樹狀陣列

public static int lowbit(int i)

public static void change(int i, int j, int value)

i += lowbit(i);}}

public static int getsum(int i, int j)

i -= lowbit(i);

}return sum;

}

樹狀陣列模版

單點更新,區間求和 include include using namespace std const intmaxn 1e6 1 inta maxn c maxn intmaxnum 1e6 intlowbit intx intsum intx return res void add intx,i...

樹狀陣列模版

原來聽到樹狀陣列這名字感覺很難,很高大上。學了一下發現不難。而且很好。普通的陣列修改某個值耗費為o 1 輸出和為o n 而樹狀陣列為o logn lowbit x 返回的是x二進位制最後一位1的位置 有公式 cn a n a k 1 an 其中 k 為 n 的二進位制表示中從右往左數的 0 的個數 ...

樹狀陣列模版

分析一下上面那個圖看能得出什麼規律 據圖可知 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,c9 a9,c10 a9 a10,c11 a11.c16 a1 a2 a3 a4 a5...