POJ 3468(樹狀陣列的威力)

2022-03-12 23:21:44 字數 710 閱讀 8580

之前說過這是線段樹的裸題,但是當看了 這篇題解後我簡直震驚了,竟然能如此巧妙地轉化為用樹狀陣列來處理,附上部分截圖(最好還是進入原**細細品味):

依照他的思路附上我的**:

1 #include2 #include3

#define lowbit(x) ((x)&-(x))

4 typedef long

long

ll;5

const

int maxn= 100003

;6 ll org[maxn+3];7

8struct

tree

11 ll sum(int x) const

17return

res;18}

19void add(int

x, ll d)24}

25} d1,d2;

2627 inline ll sum(int

x) 30

31int

main()

42while(q--)

48else55}

56}57return0;

58 }

view code

提交後發現比線段樹要快一點,再加上**的精簡性,樹狀陣列,果然夠強大!

poj 3468 樹狀陣列 區間修改 區間求和

這是利用樹狀陣列進行 區間求和區間修改,寫起來比線段樹輕鬆許多,具體的原理參考大佬部落格 如下 1 2 poj 3468 樹狀陣列 區間修改 和 區間查詢 3原理 4c1 和 c2 是兩個差分陣列,所以輸入資料時 c1 i a i a i 1 56 7 include 8 include 9 inc...

poj3468 樹狀陣列的區間快速更新和查詢

直接用樹狀陣列會超時 所以必須快速更新。分析 由於本題更新的時候是區間更新 所以不能直接去乙個個更新區間內的點,肯定會超時 對於每次更新c a,b,d 表示區間 a,b 內的值增加d 用ans a 表示a n區間元素增加的值,所以對於c a,b,d 有 ans a d,ans b 1 d 則每次詢問...

poj3468 樹狀陣列 一維 區間更新 區間查詢

其實這題應該是線段樹區間更新的模板題,我現在用樹狀陣列的方法做 理解樹狀陣列一維的區間更新和區間查詢需要一些基礎 知道的直接繼續往下看 樹狀陣列 一維 單點更新 區間查詢 最基礎 樹狀陣列 一維 區間更新 單點查詢 其實樹狀陣列本質就是單點更新 區間查詢,其它用法都是通過轉化成本質用法實現 一維的區...