树状数组 0 分求助
查看原帖
树状数组 0 分求助
448873
Pig_py楼主2022/5/4 20:50

原来 AC 了,对比出来也没有错误。

#include<bits/stdc++.h>
using namespace std;
const int N=500005;
int t[N],n,m;
int lowbit(int x){
	return x&-x;
}
void add(int x,int k){
	for(int i=x;i<=n;i+=lowbit(i)){
		t[i]+=k;
	}
}
int query(int x){
	int ans=0;
	for(int i=x;i>0;i-=lowbit(i)){
		ans+=t[i];
	}
	return ans;
}
int main(){
	int n,m;
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++){
		int x;
		scanf("%d",&x);
		add(i,x);
	}
	for(int i=1;i<=m;i++){
		int opt;
		
		scanf("%d",&opt);
		if(opt==1){
			int x,k;
			scanf("%d%d",&x,&k);
			add(x,k);
		}
		else{
			int x,y;
			scanf("%d%d",&x,&y);
			cout<<query(y)-query(x-1)<<endl;
		}
	}
	return 0;
}
2022/5/4 20:50
加载中...