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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

差分数组分析详解+例题

發(fā)布時(shí)間:2023/12/14 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 差分数组分析详解+例题 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、定義:

差分,又名差分函數(shù)或差分運(yùn)算,差分的結(jié)果反映了離散量之間的一種變化。

例如,我們有一段離散化序列:a[1],a[2],a[3]......a[n-1],a[n], 我們可以建立數(shù)列的每一項(xiàng)與前一項(xiàng)的差值數(shù)組 c,

則有 c [1] = a[1] - a[0],當(dāng) i>=2 時(shí)有 c[i]=a[i]-a[i-1]。這樣我們就可以將一段序列的差值序列記錄下來。

?

二、性質(zhì):

先來看這樣的例子:

我們可以發(fā)現(xiàn):

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?a[1] = c[1]

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?a[2]=c[1]+c[2]=a[1]+a[2]-a[1]=a[2]

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?.......

我們可以發(fā)現(xiàn)原數(shù)列的第 i 項(xiàng)可以由差分?jǐn)?shù)組前 i 項(xiàng)和得到,也就是 差分?jǐn)?shù)組的前綴和

如果我們求原數(shù)列的前i項(xiàng)和,就是差分?jǐn)?shù)組的前綴和的前綴和

列出公式有

?

三、應(yīng)用:

1、快速的區(qū)間加減操作:

對(duì)一段區(qū)間 [ L ,R] 進(jìn)行加 x 的操作該怎樣進(jìn)行呢,我們知道 c 數(shù)組存儲(chǔ)的是每一項(xiàng)與前一項(xiàng)的差值,一段區(qū)間全部加x,那么區(qū)間內(nèi)的差值應(yīng)該保持不變,需要改變的只是兩個(gè)端點(diǎn), 也就是 c[ L?] 和 c[ R+1]項(xiàng)。c[ L]比前一項(xiàng)多 x,所以有c[L ] += x,c[R]也增加x,其后一項(xiàng) c[ R+1] 減少 x,則 c [R+1] -= x 。

因此我們?cè)谔幚硪欢螀^(qū)間時(shí)可以直接對(duì)受影響的兩個(gè)值進(jìn)行操作即可,簡(jiǎn)單快速。

2、區(qū)間求和、求單點(diǎn)值:

如上面的公式:單點(diǎn)和為差分?jǐn)?shù)組的前綴和,區(qū)間和為差分?jǐn)?shù)組前綴和的前綴和。

3、樹狀數(shù)組中的差分應(yīng)用:

這個(gè)大佬寫的很好,這里不再過多贅述。

https://www.cnblogs.com/kickit/p/9172189.html

?

四、例題:

1、HDU1556--Color the ball ??https://vjudge.net/problem/HDU-1556

2、POJ--3263--????Tallest Cow ??https://vjudge.net/problem/POJ-3263

3、[ NOIP2012提高 & 洛谷P1083] ?借教室 ? ?https://www.luogu.org/problem/P1083

4、二維差分:HDU-6514 ?Monitor???https://vjudge.net/problem/HDU-6514

關(guān)于這個(gè)題,有大佬寫的賊棒:https://blog.csdn.net/D5__J9/article/details/89428614

?

青山遮不住,畢竟東流去。 江晚正愁余,山深問鷓鴣。

刀刃飛,誰可為我敵。衣袂舞,一笑常門寂,而幸相遇,風(fēng)清月明。

致QDU美好的夜景。

?

總結(jié)

以上是生活随笔為你收集整理的差分数组分析详解+例题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。