求调
查看原帖
求调
1218138
molakeser楼主2025/1/8 22:40

说点什么呢。。。rt.

#include <bits/stdc++.h>

using namespace std;
#define int long long
const int N=5e5+5;
int n,m,a[N],lb[N];
int lowbit(int x){
    return x&-x;
}
void add(int x,int k){
    for(int i=x;i<=n;i+=lb[i]){
        a[x]+=k;
    }
    return;
}
void sum(int x,int y){
    int txl=0,ty=0;
    for(int i=x;i>0;i-=lb[i]){
        txl+=a[i];
    }
    for(int i=y;i>0;i-=lb[i]){
        ty+=a[i];
    }
    cout<<ty-txl<<endl;
    return;
}
signed main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        lb[i]=lowbit(i);
    }
    for(int i=1;i<=n;i++){
        int x;
        cin>>x;
        add(i,x);
    }
    for(int i=1;i<=m;i++){
        int p,x;
        cin>>p>>x;
        if(p==1){
            int k;
            cin>>k;
            add(x,k);
        }
        else{
            int y;
            cin>>y;
            sum(x-1,y);
        }
    }
    return 0;
}

2025/1/8 22:40
加载中...