浅谈矩阵前缀和
本篇随笔浅谈一下算法竞赛中的矩阵前缀和。
一、前缀和
众所周知,前缀和是一种非常容易理解又非常好用的数据结构。其原理很简单。就是对于一个数列,前缀和就是前i个元素加和。这样的话,我们就可以用一次预处理,然后对于每次询问区间和,其复杂度都是O(1)的。非常优秀。
其原理很简单,就是r点前缀和减去l-1点的前缀和,就是l-r的区间和。
二、矩阵前缀和
矩阵前缀和和前缀和大同小异。其定义是:矩阵前缀和是以其为右下角的矩阵的元素和。
通过矩阵前缀和,我们可以用遍历矩阵的时间来预处理。最后也能很快地处理出矩阵的“区间和”。
更特别地,对于两个矩阵来讲,大矩阵和小矩阵中间可以划分成类似田字格的四个部分。这些部分也可以用矩阵前缀和来处理出来。也就是说,矩阵前缀和很适合处理类似“矩阵分割”之类的问题。