为什么错了?
查看原帖
为什么错了?
359430
江户川コナン楼主2021/11/6 21:50

求助大佬!70pts

代码:

#include <bits/stdc++.h>
using namespace std;
int n,m;
const int maxn=5e5+5;
int g[maxn];
int lowbit(int x){
    return x&(-x);
}
void add(int x,int k){
    for(int i=x;i<=n;i+=lowbit(i)){
        g[i]+=k;
    }
}
int quora(int x){
    int ans=0;
    for(int i=x;i>=1;i-=lowbit(i)){
        ans+=g[i];
    }
    return ans;
}
int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        int a;
        cin>>a;
        add(i,a);
        //cout<<1<<endl;
    }
    for(int i=1;i<=n;i++){
        int op,x,y;
        cin>>op>>x>>y;
        if(op==1){
            add(x,y);
        }else{
            cout<<quora(y)-quora(x-1)<<endl;
        }
    }
    return 0;
}
2021/11/6 21:50
加载中...