社区讨论

求助*2,树状数组 70分

P3374【模板】树状数组 1参与者 3已保存回复 4

讨论操作

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

当前回复
4 条
当前快照
1 份
快照标识符
@lobu311s
此快照首次捕获于
2023/10/30 02:57
2 年前
此快照最后确认于
2023/11/04 07:23
2 年前
查看原帖
CPP
#include<bits/stdc++.h>
#define ll long long
#define in inline
#define reint register int
using namespace std;
int n,m,c[2000100]; 
in int read(){int h=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9')h=h*10+ch-'0',ch=getchar();return h*f;}
in void add(int x,int d){for(reint i=x;i<=n;i+=i&-i)c[i]+=d;}
in ll ask(int x){
	ll h=0;
	for(reint i=x;i;i-=i&-i)h+=c[i];
	return h;
}
int main(){
	n=read();
	m=read();
	for(reint i=1,x;i<=m;i++){
		x=read();
		add(i,x);
	}
	for(reint i=1,x,y,t;i<=m;i++){
		t=read(),x=read(),y=read();
		if(t==1)add(x,y);
		else{
			if(x>y)swap(x,y);
			cout<<ask(y)-ask(x-1)<<endl;
		}
	}
	return 0;
}
舅舅孩子...

回复

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

正在加载回复...