70求调
查看原帖
70求调
782210
Yu_Chengxuan楼主2024/6/22 11:48
#include <bits/stdc++.h>
using namespace std;
#define int long long

const int maxn = 2e5 + 10;
int tree[maxn*4],a[maxn],n,m;
inline int lowbit(int k){
    return k & -k;
}
int sum(int x) {
	long long ret = 0;
	for (int i=x;i;i-=lowbit(i))
		ret += tree[i];
	return ret;
}
void add(int x,int d) {
	for (int i=x;i<=n;i+=lowbit(i))
		tree[i] += d;
}
signed main() {
	cin >> n >> m;
	for (int i=1;i<=n;i++) {
		cin >> a[i];
		add(i,a[i]);
	}
    for(int i=1;i<=m;i++){
        int opr,x,y;
        cin >> opr >> x >> y;
        if(opr==1)
            add(x,y);
        if(opr==2)
            cout << sum(y)-sum(x-1) << endl;
    }
}

求调

2024/6/22 11:48
加载中...