树状数组模板-1200-序列和

code1200

https://oj.bashu.com.cn/images/1200-1.png

https://oj.bashu.com.cn/images/1200-2.png

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int n,m,a[100005],c[100005];
int lowbit(int x){return x&(-x);}
void add(int x,int d){for(int i=x;i<=n;i+=lowbit(i)) c[i]+=d;}
int ask(int x)
{
	int ans=0;
	for(int i=x;i>0;i-=lowbit(i))
	ans+=c[i];return ans;
}
int main()
{
	scanf("%d%d",&n,&m);
	for(int i=1;i<=m;++i)
	{
		char f1[5]; int f2,f3; scanf("%s %d%d",&f1,&f2,&f3);
		if(f1[0]=='A'&&f1[1]=='d') add(f2,f3);
		else if(f1[0]=='S') add(f2,-f3);
		else printf("%d
",sum(f3)-sum(f2-1));
	}
	return 0;
}
原文地址:https://www.cnblogs.com/wuwendongxi/p/13159412.html