在范围内查找求和

时间:2016-06-09 07:04:03

标签: algorithm tree

我已经给出了一个数组A和B.其中B包含了A的索引。 让 A = [2,3,5,6,7,8,9] B = [1,3,1,4,5,2,6]

我已经提出了Q个查询,我必须使用B在L to R范围内找到Sum。

Example L=2 , R=4

Sum =  A[B[2]]+A[B[3]]+ A[B[4]]
Sum =  A[3] + A[1]+A[4] = 5+2+6=13 

Now a Query for update i.e 
U 2 10
A[2] =10 // previously 3
S 6 7
Sum = A[B[6]]+A[B[7]] = A[2]+A[6]=10+8=18

是否有比O(Q*N)更好的解决方案,在这种情况下支持更新和求和的任何数据结构。 (段树和BITS之类的)

约束:

N,Q,Value<10^6 

0 个答案:

没有答案