差分及樹上差分學習筆記

大佬博客連接:https://www.cnblogs.com/ice-wing/p/7709311.htmlhtml

 

差分:數組

因而先來講一下差分吧,假設如今給你一個序列,要對區間進行修改,只有區間加和區間減,而後求一次總體的最大值spa

好事,咱們只須要用線段樹就行了,可是若是數據範圍比較大,那麼線段樹就死了,這時咱們能夠考慮這樣一種操做htm

好比說這樣一個序列blog

1 2 2 4 5 6 5 7 8博客

假設咱們要修改區間[4, 7],將區間內全部數都加1,那麼咱們能夠再開一個數組用來標記數據

在4的位置標記+1,在8的位置標記-1co

0 0 0 1 0 0 0 1 ps

這時咱們就能夠發現對這個標記數組求一個前綴和

0 0 0 1 1 1 1 0

哦好事,咱們發現咱們就已經知道在某一段區間要加上幾,這樣咱們就一個O(n)掃一遍,取個最大值

這題就結束了。

題?回頭再說 

相關文章
相關標籤/搜索