【AC軍團週報(第四周)第一篇】線段樹從入門到入土【4】(未完成)
阿新 • • 發佈:2018-12-02
本文章連載AC軍團週報
-> 線段樹 : 從入門到入土【4】
前言
從前有一位遠古神犇,他彙集各大資料結構之精華,經過艱苦卓絕的研究,終於煉製成了一種新的,更簡潔的,更快的線段樹——zkw線段樹
(大霧)
四、zkw線段樹基礎
我們已經學過了線段樹的基礎了,相信大家已經熟練掌握線段樹大概的樣子了。
線段樹什麼樣子,,,二叉樹?
那二叉樹我們怎麼進行查詢修改?是不是用的遞迴?
突然,有一天,你可能想,,,
遞迴好慢啊,又費棧空間,,,
怎麼辦?可以不用遞迴嗎?
二叉樹?誒,好熟悉,我們要是換成完全二叉樹呢?這樣的我們子節點就好找了啊,直接for就好啊
zkw線段樹就是以堆式儲存來實現非遞迴的線段樹。堆式儲存,好高階的名詞,,,實際上,堆式儲存就是指像二叉樹那樣存,可以用一些完全二叉樹的性質大到快速查詢的目的
首先,上個醜圖來了解下zkw線段樹的樣子:
誒,那個8怎麼是紅的?
我們首先可以看到,這個線段樹並不是我們當時看到的線段樹那樣維護的,原來我們是1~8,這次,我們只維護了0~7?我們編號向左挪了一位?
不然。
實質上我們真的只維護了1~7。為什麼?那[0,1)是幹什麼的呢?
那個節點和我們的查詢操作有關。(之後再講)
首先我們要維護一個M。
這個M記錄的是一個2的幾次冪數,且滿足M<=