社区讨论

样例过来,但全WA

P2068统计和参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@mhjde3jx
此快照首次捕获于
2025/11/04 00:44
4 个月前
此快照最后确认于
2025/11/04 00:44
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
int a[500005],b[500005],n,m,d,e;
char c;
int lowbit(int x){
	return x&-x;
}
void bu(int x){
	for(int i=1;i<=x;i++){
		b[i]+=a[i];
		int j=i+lowbit(i);
		if(j<=n) b[j]+=b[i];
	}
}
int du(int x,int y){
	int sum=0;
	while(y>=x){
		sum+=b[y];
		y-=lowbit(y);
	}
	return sum;
}
void add(int x,int y){
	while(x<=n){
		b[x]+=y;
		x+=lowbit(x);
	}
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++) scanf("%d",&a[i]);
	bu(n);
	while(m--){
		cin>>c;
		scanf("%d%d",&d,&e);
		if(c=='y'){
			cout<<du(1,e)-du(1,d-1)<<endl;
		}
		else{
			add(d,e);
		}
	}
	return 0;
}

回复

1 条回复,欢迎继续交流。

正在加载回复...