void init(){//初始化树状数组c
for(int i=1;i<=n;i++){
for(int j=i-(i&-i)+1;j<=i;j++){
c[i]+=a[j];
}
}
}
int query(int k){//前k项和
int sum=0;
while(k){
sum+=c[k];
k-=k&-k;
}
return sum;
}
void update(int k,int val){//更新树状数组c
while(k<=n){
c[k]+=val;
k+=k&-k;
}
}
树状数组
最新推荐文章于 2025-04-24 15:39:27 发布