算法基础前缀和 & 差分本页总览前缀和 & 差分参考资料 前缀和 & 差分 - OI Wiki 前缀和 前缀和(Prefix Sum)可以简单理解为「数列的前 nnn 项的和」,是一种重要的预处理方式,能大大降低查询的时间复杂度。 Sk=∑i=1kAi=A1+A2+⋯+AkS_k=\sum_{i=1}^k A_i=A_1+A_2+\dots+A_kSk=i=1∑kAi=A1+A2+⋯+Ak ∑i=abAi=Sb−Sa−1\sum_{i=a}^b A_i=S_b-S_{a-1}i=a∑bAi=Sb−Sa−1 差分 差分(Difference)是一种和前缀和相对的策略,可以当做是求和的逆运算。 Ak=Sk−Sk−1A_k=S_k-S_{k-1}Ak=Sk−Sk−1 STL std::partial_sum std::adjacent_difference 例题 题面code洛谷 P8218 【深进1.例1】求区间和给定由 nnn 个正整数组成的序列 a1,a2,…,ana_1, a_2, \dots, a_na1,a2,…,an 和 mmm 个区间 [li,ri][l_i,r_i][li,ri],分别求这 mmm 个区间的区间和。