cn = a(n – 2^k + 1) + … + an ;
此處的k為n的二進位制形式末尾0的個數,可以利用lowbit()函式找出k
注意:下標不能從0開始:
當i = 0,0 + lowbit(0) = 0,會造成死迴圈!
主要三個函式:
+ expand source(雙擊可全選**)
樹狀陣列功能:
1、單點更新,區間求和(第一類)//hdu 1166 敵兵布陣
2、區間更新,單點求值(第二類)//hdu 1556 color the ball
3 、逆序數的應用,可以求左邊小於它的數,右邊大於它的數,反過來可以求
⁂
題目:hdu 1166 敵兵布陣 ,樹狀陣列模板題,單點更新,區間求和
+ expand source(雙擊可全選**)
⁂
hdu 1556 color the ball 區間更新,單點求值
+ expand source(雙擊可全選**)
⁂
hdu 1541 stars 樹狀陣列應用
+ expand source(雙擊可全選**)
⁂
hdu 1892 see you~ 簡單二維樹狀陣列
+ expand source(雙擊可全選**)
⁂
hdu 2642 stars 二維樹狀陣列
+ expand source(雙擊可全選**)
⁂
hdu 3584 cube 三維樹狀陣列,只有0,1的區間更新,單點求值
+ expand source(雙擊可全選**)
⁂
hdu 2689 sort it 求逆序對
+ expand source(雙擊可全選**)
⁂
hdu 2838 cow sorting 逆序數的應用
+ expand source(雙擊可全選**)
⁂
hdu 1394 minimum inversion number 逆序對應用
+ expand source(雙擊可全選**)
⁂
hdu 2688 rotate 求正序數,然後模擬
+ expand source(雙擊可全選**)
⁂
hdu 2852 kiki』s k-number 求大於a的第k大元素,可以用二分列舉
+ expand source(雙擊可全選**)
⁂
hdu 2227 find the nondecreasing subsequences 利用樹狀陣列求遞增序列個數
+ expand source(雙擊可全選**)
⁂
hdu 3450 counting sequence 類似2227
+ expand source(雙擊可全選**)
⁂
hdu 2492 ping pong 求長度為3的順序序列有多少個
+ expand source(雙擊可全選**)
cn = a(n – 2^k + 1) + … + an ;
此處的k為n的二進位制形式末尾0的個數,可以利用lowbit()函式找出k
注意:下標不能從0開始:
當i = 0,0 + lowbit(0) = 0,會造成死迴圈!
主要三個函式:
+ expand source(雙擊可全選**)
樹狀陣列功能:
1、單點更新,區間求和(第一類)//hdu 1166 敵兵布陣
2、區間更新,單點求值(第二類)//hdu 1556 color the ball
3 、逆序數的應用,可以求左邊小於它的數,右邊大於它的數,反過來可以求
⁂
題目:hdu 1166 敵兵布陣 ,樹狀陣列模板題,單點更新,區間求和
+ expand source(雙擊可全選**)
⁂
hdu 1556 color the ball 區間更新,單點求值
+ expand source(雙擊可全選**)
⁂
hdu 1541 stars 樹狀陣列應用
+ expand source(雙擊可全選**)
⁂
hdu 1892 see you~ 簡單二維樹狀陣列
+ expand source(雙擊可全選**)
⁂
hdu 2642 stars 二維樹狀陣列
+ expand source(雙擊可全選**)
⁂
hdu 3584 cube 三維樹狀陣列,只有0,1的區間更新,單點求值
+ expand source(雙擊可全選**)
⁂
hdu 2689 sort it 求逆序對
+ expand source(雙擊可全選**)
⁂
hdu 2838 cow sorting 逆序數的應用
+ expand source(雙擊可全選**)
⁂
hdu 1394 minimum inversion number 逆序對應用
+ expand source(雙擊可全選**)
⁂
hdu 2688 rotate 求正序數,然後模擬
+ expand source(雙擊可全選**)
⁂
hdu 2852 kiki』s k-number 求大於a的第k大元素,可以用二分列舉
+ expand source(雙擊可全選**)
⁂
hdu 2227 find the nondecreasing subsequences 利用樹狀陣列求遞增序列個數
+ expand source(雙擊可全選**)
⁂
hdu 3450 counting sequence 類似2227
+ expand source(雙擊可全選**)
⁂
hdu 2492 ping pong 求長度為3的順序序列有多少個
+ expand source(雙擊可全選**)
樹狀陣列總結
樹狀陣列的基本知識已經被各種大牛和菜鳥講到爛了,我就不多說了,下面給出基本操作的 假定原陣列為a 1.n 樹狀陣列b 1.n 考慮靈活性的需要,使用int a傳陣列。define lowbit x x x int sum int a,int x void update int a,int x,int...
樹狀陣列總結
樹狀陣列是對乙個陣列改變某個元素和求和比較實用的資料結構。兩中操作都是o logn 在解題過程中,我們有時需要維護乙個陣列的字首和s i a 1 a 2 a i 但是不難發現,如果我們修改了任意乙個a i s i s i 1 s n 都會發生變化。可以說,每次修改a i 後,調整字首和s在最壞情況下...
樹狀陣列總結
今天學習了一下樹狀陣列,做乙個簡單總結。樹狀陣列可分為兩種操作,1 修改單個點,統計區間和 一般為 向上修改 update1 向下統計 sum1 2 修改區間,統計單個點 一般為向下修改 update2 向上統計 sum2 主要模板如下 int c n int lowbit int x 用於確定區間...