日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

差分数组

發布時間:2024/10/5 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 差分数组 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、基本概念

差分數組:對于已知有n個元素的離線數列d,我們可以建立記錄它每項與前一項差值的差分數組f:顯然,f[1]=d[1]-0=d[1];對于整數i∈[2,n],我們讓f[i]=d[i]-d[i-1]。

二、性質

(1)計算數列各項的值:觀察d[2]=f[1]+f[2]=d[1]+d[2]-d[1]=d[2]可知,數列第i項的值是可以用差分數組的前i項的和計算的,即d[i]=f[i]的前綴和。

(2)計算數列每一項的前綴和:第i項的前綴和即為數列前i項的和,那么推導可知

即可用差分數組求出數列前綴和;

三、用途

(1)快速處理區間加減操作:

假如現在對數列中區間[L,R]上的數加上x,我們通過性質(1)知道,第一個受影響的差分數組中的元素為f[L],即令f[L]+=x,那么后面數列元素在計算過程中都會加上x;最后一個受影響的差分數組中的元素為f[R],所以令f[R+1]-=x,即可保證不會影響到R以后數列元素的計算。這樣我們不必對區間內每一個數進行處理,只需處理兩個差分后的數即可;

(2)詢問區間和問題:

由性質(2)我們可以計算出數列各項的前綴和數組sum各項的值;那么顯然,區間[L,R]的和即為ans=sum[R]-sum[L-1];

四、例題

http://acm.hdu.edu.cn/showproblem.php?pid=1556

?

五、參考文章

https://www.cnblogs.com/COLIN-LIGHTNING/p/8436624.html

總結

以上是生活随笔為你收集整理的差分数组的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。