如何使用二進制索引樹進行範圍更新,以使範圍內的每個元素A[k]
均爲[i..j]
更新爲A[k]*c
,其中c
是某個常數。二進制索引樹中的範圍更新
而我需要做這樣的更新操作後點查詢。
我試着用下面的函數,但它不工作,這裏n
是數組的大小,c
是我想乘以範圍的每個元素的常量。
def updateM(x, c, n):
while x <= n:
BIT[x] *= c
x += (x & -x)
,這些都是我的電話更新範圍:
updateM(i, c, n)
updateM(j+1, -c, n)
任何形式的幫助,將不勝感激。 :)