前缀和与差分

Posted Harris-H

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前缀和与差分相关的知识,希望对你有一定的参考价值。

前缀和与差分

前言

本文只写公式,不证明。

下文中 d \\large d d​​​数组均表示差分数组, a \\large a a​​​数组均表示原数组, p r e \\large pre pre​​​​​数组均表示前缀和数组,下面让我们 l e t ′ s    g o \\large let's\\ \\ go lets  go​​

一维

d i = a i − a i − 1 a n = ∑ i = 1 n d i p r e n = ∑ i = 1 n a i = ∑ x = 1 n ∑ i = 1 x d i = ∑ i = 1 n d i × ( n − i + 1 ) \\large d_i=a_i-a_{i-1} \\\\ \\large a_n=\\sum\\limits_{i=1}^nd_i \\\\ \\large pre_n=\\sum\\limits_{i=1}^n a_i=\\sum\\limits_{x=1}^n\\sum\\limits_{i=1}^x d_i=\\sum\\limits_{i=1}^nd_i\\times (n-i+1) di=aiai1an=i=1ndipren=i=1nai=x=1ni=1xdi=i=1ndi×(ni+1)

差分维护区间修改 [ l , r ] \\large [l,r] [l,r]
d l + = x , d r + 1 − = x \\large d_l+=x,d_{r+1}-=x dl+=x,dr+1=x

二维

d i , j = a i , j − a i − 1 , j − a i , j − 1 + a i − 1 , j − 1 a i , j = d i , j + d i − 1 , j + d i , j − 1 − d i − 1 , j − 1 = ∑ x = 1 i ∑ y = 1 j d x , y p r e i , j = a i , j + p r e i − 1 , j + p r e i , j − 1 − p r e i − 1 , j − 1 = ∑ x = 1 i ∑ y = 1 j a x , y = ∑ x = 1 i ∑ y = 1 j ∑ k = 1 x ∑ l = 1 y a k , l s u m   o f   s u b r e c t a n g l e { x 1 ≤ x ≤ x 2 , y 1 ≤ y ≤ y 2 } = p r e x 2 , y 2 − p r e x 1 − 1 , y 2 − p r e x 2 , y 1 − 1 + p r e x 1 − 1 , y 1 − 1 \\large d_{i,j}=a_{i,j}-a_{i-1,j}-a_{i,j-1}+a_{i-1,j-1} \\\\ \\large a_{i,j}=d_{i,j}+d_{i-1,j}+d_{i,j-1}-d_{i-1,j-1}=\\sum\\limits_{x=1}^i\\sum\\limits_{y=1}^j d_{x,y} \\\\ \\large pre_{i,j}=a_{i,j}+pre_{i-1,j}+pre_{i,j-1}-pre_{i-1,j-1} \\\\ \\large =\\sum\\limits_{x=1}^i\\sum\\limits_{y=1}^ja_{x,y}=\\sum\\limits_{x=1}^i\\sum\\limits_{y=1}^j\\sum\\limits_{k=1}^x\\sum\\limits_{l=1}^ya_{k,l} \\\\ \\large sum\\ of\\ subrectangle\\{x_1\\le x\\le x_2,y_1\\le y\\le y_2\\} \\\\ \\large = pre_{x_2,y_2}-pre_{x_1-1,y_2}-pre_{x_2,y_1-1}+pre_{x_1-1,y_1-1} di,j=ai,jai1,jai,j1+ai1,j1ai,j=di,j+di1,j+di,j1di1,j1=x=1iy=1jdx,yprei,j=ai,j+prei1,j+prei,j1prei1,j1=x=1iy=1jax,y=x=1iy=1j以上是关于前缀和与差分的主要内容,如果未能解决你的问题,请参考以下文章

[知识点] 2.7 前缀和与差分

[知识点] 2.7 前缀和与差分

基础算法 --- 前缀和与差分

前缀和与差分

前缀和与差分

前缀和与差分