差分詳細講解筆記

2022-05-12 21:46:35 字數 754 閱讀 6956

那麼我們先來細細地講一下差分到底是個什麼東西吧

首先,差分其實和我們所熟悉的字首和大有相似之處

字首與差分其實是一對 互逆序列

只是換成了b[i]=a[i]-a[i-1]。

那麼我們先來舉乙個例子看看

假如a陣列wei

7  5 2 9 11 19 14

那麼差分數列b就為

7 -2 -3 7 2 7 -5

差分數列的字首和就是原數列

==》同樣字首和數列的差分也是原數列

那麼我們再來講一下差分數列的幾個神奇的性質

還是剛才的那個差分數列b

7 -2 -3 7 2 7 -5

如果我們想要在原陣列a的[l,r]的區間內把所有的值都加上(減去也行)d

那麼差分數列會怎麼變化呢

假如從下標從1到7

我們把a [2,5]都加3

那麼a陣列就變成了

7  8 5 12 14 19 14

那麼差分數列會怎麼變化呢

首先b[2]肯定是要加上d的,因為原來a[2]比a[1]大的值,a[2]又加了d,那它們的差也會加d

a[3]a[4]a[5]都和它們的前乙個數一樣,同時加了d,根據等式的基本性質,差還都是不變的,b[3-5]都沒有發生改變

而b[6],因為a[6]前乙個數a[5]加了d,那a[6]-a[5]也就少了

總結一下:

那麼區間的操作就不再複雜,只需要把b[ l ]和b[r+1]的值進行更改就行啦!

加油!它也不難偶~

差分標記講解

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

差分約束講解

by ysy 因為差分約束是基於 spfa 的一種解不等式,或等式組的技巧,所以差分約束的前置知識就是 spfa 和對不等式的簡單小變換。因為差分約束只是乙個技巧,所以在這裡我先講解技巧,之後再講解例題。建圖技巧 我們將不等式組分為兩種 a le b val 以及 a ge b val 現在討論第一...

二維差分(講解)

於 我們有乙個矩陣,如下圖所示。根據二維字首和表示的是右上角矩形的和,由於差分只涉及前面相鄰的數 由一維可以推出 並且由前面範圍的數相加得到這個位置的數。那麼模擬二維字首和和一維差分,可以簡單推測出二維差分的公式 如何從差分矩陣得到原矩陣呢?可以參考下面公式 比如,我們有乙個矩陣 a,如下所示 1 ...