大佬的讲解
视频讲解
两者搭配食用效果更佳
树状数组就是一个树状数组的板子题
int lowbit(int x){
return x&(-x);
}
求最低位1代表的值是多少
void add(int x,int y){
while(x<=n){
c[x]+=y;
x+=lowbit(x);
}
}
将包含这个数的每一个值都更新
int sum(int x){
int sum=0;
while(x>0){
sum+=c[x];
x-= lowbit(x);
}
return sum;
}
求前缀和
int32_t main()
{
cin>>n>>m;
for(int i=1;i<=n;i++){
int x;
cin>>x;
add(i,x);
}
for(int i=1;i<=m;i++){
int p,x,k;
cin>>p>>x>>k;
if(p==1){
add(x,k);
}
else{
cout<<sum(k)-sum(x-1)<<endl;
}
}
return 0;
}
标签:return,树状,int,sum,add,数组
From: https://www.cnblogs.com/zyzzzz/p/17613579.html