树状数组70分求条
查看原帖
树状数组70分求条
1409299
caisien楼主2025/8/3 08:30
#include<bits/stdc++.h>
#define int long long

using namespace std;

int n,m,tree[500005];

int lowbit(int x){
	return x & -x;
}
void add(int x,int y){
	for(int a = x;a <= n;a += lowbit(a)){
		tree[a] += y;
	}
}
int qry(int x){
	int a = x,ans = 0;
	while(a){
		ans += tree[a];
		a -= lowbit(a);
	}
	return ans;
}
signed main(){
	cin >> n >> m;
	for(int i = 1;i <= n;i++){
		int a;
		cin >> a;
		add(i,a);
	}
	for(int i = 1;i <= n;i++){
		int a,b,c;
		cin >> a >> b >> c;
		if(a == 1){
			add(b,c);
		}else cout << qry(c) - qry(b - 1) << "\n";
	}
	return 0;
}

2025/8/3 08:30
加载中...