列一下树状数组的三个基本的操作:lowbit运算、修改值、求前缀和
// lowbit 运算
int lowbit(int x)
{
return x&-x;
}
// add
void add(int x,int v)
{
for(int i=x;i<=n;i+=lowbit(i))
tree[i]+=v;
}
// 求前缀和
int sum(int x)
{
int res=0;
for(int i=x;i;i-=lowbit(i))
res+=tree[i];
return res;
}
add 的for 循环漏了个括号吧
a.。不好意思 写的时候比较草率 已更正