感觉我板子没有写错呀?就全wa了!请求各路大神们看一下,谢谢啦!!
#include<iostream>
#include<cstdio>
using namespace std;
int a[1000001],c[1000001],n,w,x,y;
char o;
int lowbit(int x){
return x&(-x);
}
void updata(int i,int k){
while(i<=n){
c[i]+=k;
i+=lowbit(i);
}
}
int getsum(int i){
int sum=0;
while(i>0){
sum+=c[i];
i-=lowbit(i);
}
return sum;
}
int main(){
cin>>n>>w;
while(w--){
cin>>o>>x>>y;
if(o=='x'){
updata(x,y);
}else{
cout<<getsum(y)-getsum(x-1)<<endl;
}
}
return 0;
}
感谢所有回答者!!(可能是我手抖犯了一些低级错误,请见谅!)