浅谈二维前缀和

Posted cdoi-24374

tags:

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

首先你们要了解一个叫做前缀和的东西。

二维前缀和其实就是将普通前缀和加了一维。

也就是可以求一个矩阵内任意子矩阵元素和。

仿照一维前缀和,转移方程如下:

[sum_{i,j}=sum_{i-1,j}+sum_{i,j-1}-sum_{i-1,j-1}+a_{i,j} ]

这个转移方程嘛,主要是先通过容斥原理求出前面的和,然后再加上本身的和。

这样我们求一个左上角坐标为 (x_1,y_1),右下角坐标为 (x_2,y_2) 的坐标中子矩阵和就可以 (mathcal O(1)) 查询了,很容易得知查询 (sum_{x2,y2}-sum_{x1-1,y2}-sum_{x2,y1-1}+sum_{x1-1,y1-1}) 即可。

具体原理也是容斥原理qaq。

二维前缀和和前缀和一样用就好啦。

以上是关于浅谈二维前缀和的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode﹝前缀和ி﹞一维二维前缀和应用

前缀和,二维前缀和!

切蛋糕(二分)(二维前缀和)

二维前缀和

二维前缀和 - 算法学习 - 输入输出优化

(采油区域)二维前缀和+动态规划关系+分类讨论