Skip to content

树状数组的区间加区间查询操作

对数组 A1n 进行区间加和区间查询操作,令 Di=AiAi1,即

j=1iDj=Ai

区间查询 S(l,r) 可以差分为前缀和 S(r)S(l1),则有

S(x)=i=1xAi=i=1xj=1iDj=j=1xDj(xj+1)=(x+1)j=1xDjj=1x(j×Dj)

因此,求答案只需维护 D 的前缀和以及 i×D 的前缀和。当对 Alr 区间加时,只有 DlDr+1 发生了变化,转化为单点加单点查询。

最近更新