当前位置:   article > 正文

二维差分_二维差分的预处理

二维差分的预处理

二维差分

引入

差分都是基于前缀和的,一维差分的前缀和很简单,最需要处理区间两端。而二维的前缀和是 s u m [ i ] [ j ] = a [ i ] [ j ] + s u m [ i − 1 ] [ j ] + s u m [ i ] [ j − 1 ] − s u m [ i − 1 ] [ j − 1 ] sum[i][j]=a[i][j]+sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1] sum[i][j]=a[i][j]+sum[i1][j]+sum[i][j1]sum[i1][j1],我们在 ( x 1 , y 1 ) (x_1,y_1) (x1,y1) + a +a +a,影响了右边和下边的蓝色区域,需要 − a -a a,但两区域的重叠部分绿色被多减了一次,需要 + a +a +aimg

于是在 ( x 1 , y 1 ) (x_1,y_1) (x1,y1) ( x 2 , y 2 ) (x_2,y_2) (x2,y2) + a +a +a,需要在 s u m [ x 1 ] [ y 1 ] + = a , s u m [ x 1 ] [ y 2 + 1 ] − = a , s u m [ x 2 + 1 ] [ y 1 ] − = a , s u m [ x 2 + 1 ] [ y 2 + 1 ] + = a sum[x_1][y_1]+=a,sum[x_1][y_2+1]-=a,sum[x_2+1][y_1]-=a,sum[x_2+1][y_2+1]+=a sum[x1][y1]+=a,sum[x1][y2+1]=a,sum[x2+1][y1]=a,sum[x2+1][y2+1]+=a

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/434062
推荐阅读
相关标签
  

闽ICP备14008679号