1. 程式人生 > >2018/2/17 每日一學 線段樹

2018/2/17 每日一學 線段樹

.com 分享圖片 葉子節點 子節點 線段樹 blog 註意 alt 這就是

技術分享圖片

直接上圖,這就是線段樹,可以看到,除了葉子節點,其余的都是區間,這不難想到線段樹的用法:點修改和區間修改及詢問。

我們可以從上往下建樹,也可以反過來。

先說說怎麽建樹,我們不妨以從上往下來做,當我們想要修改[l,r]區間時,我們首先得修改[l,m]和[m+1,r]那麽,我們不難發現這是一種遞歸。

所以說,從上往下是遞歸,反過來是叠代。

當我們修改點或區間時,得想到它會影響那些節點,進行修改,註意遞歸邊界就行了。

代碼就不給了,網上都有,可以看看後面幾個例題就行了。

2018/2/17 每日一學 線段樹