“二维前缀和”的两种构造方式(下标 i、j 从 1 开始)
● 二维前缀和两种构造方式(下标 i、j 从 1 开始):
(1)双数组版
先读入原数组:cin>>a[i][j];
再求前缀和:s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+a[i][j];
数组 s 存前缀和,数组 a 存原始数据。
(2)单数组版
直接读入原始权值:cin>>s[i][j];
原地递推更新:s[i][j]+=s[i-1][j]+s[i][j-1]-s[i-1][j-1];
数组 s 初始存储原矩阵权值,经递推计算后原地覆盖,保存二维前缀和。
● 洛谷 P2280:[HNOI2003] 激光炸弹:
● AcWing 796:子矩阵的和:
● 洛谷 P3397:地毯:
● “斜十字法”图例助记二维前缀和及二维差分等公式:

浙公网安备 33010602011771号