int bit[max_n],n;
int sum(int i){//求a[i]的前i项和
int s=0;
while(i>0){
s+=bit[i];
i-=i&-i;
}
return s;
}
void add(int i,int x){//将a[i]加上x
while(i<=n){
bit[i]+=x;
i+=i&-i;
}
}
若i后面有n个0,则
bit[i]代表i到i-n的值之和
若后面没有0,则
bit[i]代表i的值
int bit[max_n],n;
int sum(int i){//求a[i]的前i项和
int s=0;
while(i>0){
s+=bit[i];
i-=i&-i;
}
return s;
}
void add(int i,int x){//将a[i]加上x
while(i<=n){
bit[i]+=x;
i+=i&-i;
}
}
若i后面有n个0,则
bit[i]代表i到i-n的值之和
若后面没有0,则
bit[i]代表i的值