大家都知道普通的樹狀數組的實現,
大致是這樣的:
節點k,統計的葉子範圍爲:
而每一個節點都只記錄左兒子的信息,
我們能夠查詢的也就只是
通常使用樹狀數組維護前綴和,但有時也能用來做一些看似只有線段樹才能實現的功能。
區間更新
我們用前綴和維護每個位置的增加的值。
記
那麼如果對
求和的話,設原數組爲
答案就是:
而現在上面的
後面兩個由於都只有單點的修改,即可使用樹狀數組。(
下面再給出兩個公式:
i節點的左兒子編號爲:
i節點的右兒子編號爲:
有了這兩個公式,能夠很方便地得到一個節點地左右兒子,
便可以類似線段樹地方式實現很多功能。
未完待續。。。