前缀和与差分(二维)

本文介绍了如何构建差分数组来高效地处理在二维数组a的子矩阵中插入特定数值c的操作,以及如何将差分数组转换为前缀和数组。重点在于递推计算b数组的更新规则:b[i][j]=b[i-1][j]+b[i][j-1]-b[i-1][j-1]。
摘要由CSDN通过智能技术生成

差分

思路:        

对一块矩形a的子矩阵全部插入某一个数。可以构造二维数组a的差分数组b,将对a的子矩阵插入c数的操作变成以下对几个数的插入:b[x1][y1]+=c,b[x2+1][y1]-=c,b[x1][y2+1]-=c,b[x2+1][y2+1]+=c。(如何求差分数组b,假定b数组为0,a数组即也为0,对b数组每个点插入b[x1][y1]+=c,b[x2+1][y1]-=c,b[x1][y2+1]-=c,b[x2+1][y2+1]+=c)对差分数组操作完之后,再将差分数组b转换成前缀和数组,即所求的数组。转换成前缀和数组的操作为(b[i][j]+=b[i-1][j]+b[i][j-1]-b[i-1][j-1])

question:

这个转换前缀和递推数组咋搞的?

for (int i = 1;i <= m;i++) {
	for (int j = 1;j <= m;j++) {
		b[i][j] += b[i - 1][j] + b[i][j - 1] - b[i - 1][j - 1];
	}
}

前缀和:

思路:

不懂不懂,看的好烦,改天再看

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值