那麼我們先來細細地講一下差分到底是個什麼東西吧
首先,差分其實和我們所熟悉的字首和大有相似之處
字首與差分其實是一對 互逆序列
只是換成了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 ...