四维及以上前缀和公式推导

前言

我在全网搜索,发现没有一篇帖子涉及到四维及以上的前缀和,于是我在冥思苦想之后,根据数学+找规律总结出高维前缀和的公式。

思路

为了找规律,我们来看低维前缀和的公式。

一维

//预处理
s[i]=s[i-1]+a[i];
//求部分和
sum[l~r]=s[r]-s[l-1];

二维

s[i][j]=s[i-1][j]
+s[i][j-1]
-s[i-1][j-1]
+a[i][j];

sum[l1~r1][l2~r2]=s[r1][r2]
-s[r1][l2-1]
-s[l1-1][r2]
+s[l1-1][l2-1];

三维

s[i][j][k]=s[i-1][j][k]
+s[i][j-1][k]
+s[i][j][k-1]
-s[i-1][j-1][k]
-s[i-1][j][k-1]
-s[i][j-1][k-1]
+s[i-1][j-1][k-1]
+a[i][j][k];

sum[l1~r1][l2~r2][l3~r3]=s[r1][r2][r3]
-s[r1][r2][l3-1]
-s[r1][l2-1][l3]
-s[l1-1][r2][r3]
+s[l1-1][l2-1][r3]
+s[l1-1][r2][l3-1]
+s[r1][l2-1][l3-1]
-s[l1-1][l2-1][l3-1];

四维

到四维我们发现有些不对起来了,因为我们所处的世界是三维的,理解不了高维的东西,但我们可以进行类比研究。

预处理

以三维来举例我们可以发现,s[i][j][k]轮流加上s[i-1][j][k],s[i][j-1][k],s[i][j][k-1],仔细研究可以加上的是只有一维进行更改的。

然后s[i][j][k]又开始减去s[i-1][j-1][k],s[i-1][j][k-1],s[i][j-1][k-1],这些东西只改变了两个维度。

最后s[i][j][k]又开始加上s[i-1][j-1][k-1],改变了三个维度

大家可否发现什么,没错,只改变奇数个维度的数被加上,只改变偶数个维度的数被减去。

因此,根据上述猜想可以写出:

s[i][j][k][l]=s[i-1][j][k][l]
+s[i][j-1][k][l]
+s[i][j][k-1][l]
+s[i][j][k][l-1]
-s[i-1][j-1][k][l]
-s[i-1][j][k-1][l]
-s[i-1][j][k][l-1]
-s[i][j-1][k-1][l]
-s[i][j-1][k][l-1]
-s[i][j][k-1][l-1]
+s[i-1][j-1][k-1][l]
+s[i-1][j][k-1][l-1]
+s[i][j-1][k-1][l-1]
-s[i-1][j-1][k-1][l-1]
+a[i][j][k][l];

求解

如果是求sum[l1~r1][l2 ~r2][l3 ~r3][l4 ~r4]呢?

还是类比,这次我不在细讲,直接给结论

每次只有l的维度(如:l1,l2,l3,l4)会被更改,其他的根预处理正好相反,奇数次会被减去,偶数次会被增加

sum[l1~r1][l2~r2][l3~r3][l4~r4]=s[r1][r2][r3][r4]
+s[l1-1][r2][r3][r4]
-s[r1][l2-1][r3][r4]
-s[r1][r2][l3-1][r4]
+s[r1][r2][r3][l4-1]
+s[l1-1][l2-1][r3][r4]
+s[l1-1][r2][l3-1][r4]
+s[l1-1][r2][r3][l4-1]
+s[r1][l2-1][l3-1][r4]
+s[r1][l2-1][r3][l4-1]
+s[r1][r2][l3-1][l4-1]
-s[l1-1][l2-1][l3-1][r4]
-s[l1-1][r2][l3-1][l4-1]
-s[r1][l2-1][l3-1][l4-1]
+s[l1-1][l2-1][l3-1][l4-1];

更高维

更高维的前缀和的规律和上述一致

总结

这样,我们就研究出高维前缀和的公式

预处理

只改变奇数个维度的数被加上,只改变偶数个维度的数被减去。

求解

每次只有l的维度(如:l1,l2,l3,l4)会被更改,其他的根预处理正好相反,奇数次会被减去,偶数次会被增加

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值