我想知道为什么树状数组递归会RE……qwq
AC
int ask(int x){
int ans=0;
while (x) ans+=a[x],x-=lowbit(x);
return ans;
}
int sum(int x,int y){
return ask(y)-ask(x-1);
}
void add(int x,int y){
while (x<=n) a[x]+=y,x+=lowbit(x);
}
RE
int ask(int x){
if (x==lowbit(x)) return a[x];
return a[x]+ask(x-lowbit(x));
}
int sum(int x,int y){
return ask(y)-ask(x-1);
}
void add(int x,int y){
if (x>n) return;
a[x]+=y,add(x+lowbit(x),y);
}