演算法筆記 差分標記

2022-03-05 07:28:59 字數 330 閱讀 4289

演算法筆記

所有元素初始值為0才能這麼做。

①l--r全加1

a[l]++;

a[r+1]--;

求一遍字首和為元素本身。

求兩遍字首和為元素字首和。

例題1:

例題2:

例題3:

②l--r從1加到r-l+1

a[l]++;

a[r+1]-=r-l+2;

a[r+2]+=r-l+1;

求兩遍字首和為元素本身。

求三遍字首和為元素字首和。

因為更新時複雜度是o(1)所以複雜度為求字首和時的o(n)。

例題:

差分標記講解

維護區間資訊的資料結構有很多,像線段樹 樹狀陣列等 然而線段樹之類的資料結構往往要寫上一段板子 儘管不是太長 但在演算法競賽中卻很有可能導致我們與別人慢上那麼幾分鐘,所以我們需要準備一種更簡單實用的資料結構,字首和 差分標記就是這樣的資料結構。我們每次對乙個區間進行加或者減,最後我們求一下每個點的值...

差分學習筆記

題面傳送門 首先明確,這是一道差分裸題,不要被它的藍標籤嚇到。演算法簡介 差分是一種和字首和類似的資料結構,畢竟在差分過程中要進行字首和,所以字首和是差分的基礎。差分能做到 o 1 修改,但要 o n 查詢,適用範圍不如字首和。差分適合查詢極少,修改大大多於查詢的題目。演算法實現 首先我們定義差分陣...

字首和,差分演算法

其實可以把它理解為數學上的數列的前n項和 對於乙個一維陣列的字首和 我們定義對於乙個陣列a的字首和陣列s,s i a 1 a 2 a i 與一維字首和類似,設s i j 表示所有a i j 的和。1 i i,1 j j 有一點像 矩形的面積 那樣,把一整塊區域的值都加起來。一般用來求區間和。對於一維...