主要的做用是能夠快速的求出數組中任意一段區間的和數組
S[i] = a[1] + a[2] + ... a[i]//S是前綴和數組,下邊從1開始,方便邊界的計算 a[l] + ... + a[r] = S[r] - S[l - 1]
相似於一維前綴和,主要是爲了快速求出二維數組中人任意上下對角構成的區域數字之和code
S[i, j] = 第i行j列格子左上部分全部元素的和 以(x1, y1)爲左上角,(x2, y2)爲右下角的子矩陣的和爲: S[x2, y2] - S[x1 - 1, y2] - S[x2, y1 - 1] + S[x1 - 1, y1 - 1]
主要是快速給一個區間中的全部的數加上一個數get
給區間[l, r]中的每一個數加上c:B[l] += c, B[r + 1] -= c
同上述一維差分相似(一維變二維)二維數組
給以(x1, y1)爲左上角,(x2, y2)爲右下角的子矩陣中的全部元素加上c: S[x1, y1] += c, S[x2 + 1, y1] -= c, S[x1, y2 + 1] -= c, S[x2 + 1, y2 + 1] += c