子矩阵的和算法

这篇博客探讨了如何高效地计算二维数组中的子矩阵和。通过将数组视为坐标系统,利用前缀和思想,可以计算每个位置[i, j]处的矩阵和。在求解子矩阵和时,通过减去不包含在子矩阵中的元素和,加上被减两次的值,即可得到目标结果。文中强调初始化矩阵和理解算法原理的重要性。" 113977599,7337247,软件架构的哲学:和而不同、知行合一、大道自然,"['大数据', 'java', '编程语言', '人工智能', 'react native']
摘要由CSDN通过智能技术生成

子矩阵的和

思想:就先把二维数组[i,j]想象成一个x,y坐标,把[0,0]看成原点,把它画在右下方,横轴代表列j,竖着的代表i。再用一个数组去保存前[i,j]矩阵里的和,原理是通过其各个部分加起来,再减去加了两次的地方。然后求子矩阵的和是用一个完全的矩阵减去不包含在其中的矩阵,然后再加上减了两次的地方,就得到了我们所需要的子矩阵的和。

注意。

不管是初始化矩阵还是求取初始化矩阵的[i,j]的和,他们都是从[1,1]开始的,因为最开始的数据要保存0,这样我们求矩阵和的时候才能更加方便,还有时刻注意那坐标的变化。

代码。

#include<iostream>
const int N=1010;
int n,q,m;
int a[N][N],s[N][N];
int main()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值