求改错,啊啊啊!
查看原帖
求改错,啊啊啊!
439327
南瓜桐楼主2021/5/25 20:40
#include<iostream>
using namespace std;
int m,n,a[100001],c[100001],sum[100001];
int lowbit (int t){
	return t&(-t);
}
void add(int x,int y){
	for(int i=x;i<=n;i+=lowbit(i)){
		c[i]+=y;
	}
	
}
int getsum(int x){
	int ans=0;
	for(int i=x;i>=1;i-=lowbit(i)){
		ans+=c[i];
		return ans;
	}
}
int main(){
//	1 x k 含义:将第 xx 个数加上 kk
//
//	2 x y 含义:输出区间 [x,y][x,y] 内每个数的和 
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		add(i,a[i]);
	}
	int x,y,z;
	for(int i=1;i<=m;i++){
		cin>>x>>y>>z;
		if(x==1){
			add(y,z);
		}else{
			cout<<getsum(y)-getsum(x-1)<<endl;
		}
	}
	return 0;
}

多谢各位大佬

2021/5/25 20:40
加载中...