PS:很多版本的方案都是:long
long sum(int x)
{
long long k=0;
while (x<=n)
{
k+=f[x];
x+=lowbit(x);
}
return k;
}
void update(int x,int b)
{
while (x)
{
f[x]+=b;
x-=lowbit(x);
}
}
向下更新指,而我总觉得与修改点,求段的方法相反, 比较难记住,那为啥不可以按照修改点的方法去做呢?
事实证明可以的:比如HDU1556就实验可以:
其实想想也应该可以的,当他们的位置倒转,不就可以了吗?
关于树状数组修改区间,求点值,布布扣,bubuko.com
关于树状数组修改区间,求点值
原文:http://www.cnblogs.com/forgot93/p/3617069.html