算法笔记:前缀和(1)

前缀和

\(pre_i = pre_{i-1} + arr_i\)

绿 = 红 + 蓝
image
绿色:\(pre_i\)
红色:\(pre_{i-1}\)
蓝色:\(arr_i\)


\(sum_{l \to r} = pre_r - pre_{l-1}\)

蓝 = 绿 - 红
image
蓝色:\(sum_{l \to r}\)
绿色:\(pre_r\)
红色:\(pre_{l-1}\)



二维前缀和

\(pre_{i,j} = pre_{i-1,j} + pre_{i,j-1} + arr_{i,j} - pre_{i-1,j-1}\)

绿 = 黄 + 红 + 蓝 - 紫
image
绿色:\(pre_{i,j}\)
黄色:\(pre_{i-1,j}\)
红色:\(pre_{i,j-1}\)
蓝色:\(arr_{i,j}\)
紫色:\(pre_{i-1,j-1}\)


\(x_1 \le x_2\)\(y_1 \le y_2\)\(sum_{x_1,y_1 \to {x_2,y_2}} = pre_{x2,y2} - pre_{x_1-1,y_2} - pre_{x_2,y_1-1} + pre_{x_1-1,y_1-1}\)

蓝 = 绿 - 黄 - 红 + 紫
image
蓝色:\(sum_{x_1,y_1 \to {x_2,y_2}}\)
绿色:\(pre_{x_2,y_2}\)
黄色:\(pre_{x_1-1,y_2}\)
红色:\(pre_{x_2,y_1-1}\)
紫色:\(pre_{x_1-1,y_1-1}\)

posted @ 2024-11-21 00:38  Keith-  阅读(10)  评论(0编辑  收藏  举报