3维前缀和,3维差分

本文介绍了一种高效的三维前缀和计算方法,通过奇偶性判断加减符号简化了计算过程。同时,提供了三维差分的8个关键公式,帮助理解高维数据结构的更新与查询操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

高维前缀和

惊喜地发现另外一种求前缀和的方式,转来粘这,感谢这位大佬的学习笔记,
[学习笔记]高维前缀和
PS:(现在更倾向于楼上的惊喜方法)

附.三维前缀和 O(N3*23)的写法

S(X, Y, Z) = a(X, Y, Z)
+S(X, Y, Z - 1) + S(X, Y - 1, Z) + S(X - 1, Y, Z)
-S(X, Y - 1, Z - 1) - S(X - 1, Y, Z - 1) - S(X - 1, Y - 1, Z)
+S(X - 1, Y - 1, Z - 1)

便于记忆的方法:二进制001——111,奇数个(-1)则为正号。(总共2t个加数咯,算上本身嘛)
@奇数则为加

S(X, Y, Z) = a(X, Y, Z) +表示
001 符号:+S(X, Y, Z - 1)
010 符号:+S(X, Y - 1, Z)
011 符号:-S(X, Y - 1, Z - 1)
100 符号:+S(X - 1, Y, Z)
101 符号:-S(X - 1, Y - 1, Z)
110 符号:-S(X - 1, Y - 1, Z)
111 符号:+S(X - 1, Y - 1, Z - 1)

三维差分8个式子

@与第一行相同的情况(奇数、偶数个1),则符号与第一行相同,此时即奇数则为负

二进制表示
000——————————————B(X1, Y1, Z1) += C ——使该立方体全部加上常数C
001B(X1, Y1, Z2 + 1) -=C
010B(X1, Y2 + 1, Z1) -= C
011B(X1, Y2 +1, Z2 + 1) += C
100B(X2 +1, Y1, Z1) -= C
101B(X2 + 1, Y1, Z2 + 1) += C
110B(X2 + 1, Y2 + 1, Z1) += C
111B(X2 + 1, Y2 + 1, Z2 + 1) -= C
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值