我知道如何在段树上进行范围更新,包括通过延迟传播向数组的任何给定段添加常量或添加AP,并对任何给定段的总和进行后续查询但不能应用几何级数的相同想法。
如何通过在相同的渐近时间复杂度(log(N))
中使用分段树来实现这一目标?
例如,如果数组是:
a[1], a[2], .... , a[l],a[l+1]...a[r-1], a[r] ... a[n - 1], a[n]
如果我们用公共比率d更新[l,r],那么更新的数组将是
a[1], a[2], .... , a[l] + d, a[l+1] + d^2 ...a[r-1] + d^(l-r), a[r] + d^(l-r+1) ... a[n - 1], a[n]
并且仍然可以对log(n)中的任何段的总和进行查询。