来看我今天晚上能写多少板子题!

RT,坑。写一个更一个。直播。233333

树状数组板子。(一遍过编译,一遍过样例。)

#include<bits/stdc++.h>
#define lowbit(A) A&-A
#define ll long long
#define rint register int
using namespace std;
int n,q,a[1000006];
ll t[1000006];
inline void update(int x,int dat){for(;x<=n;x+=lowbit(x))t[x]+=dat;return ;}
inline ll query(int x){ll res=0;for(;x;x-=lowbit(x))res+=t[x];return res;}
inline ll Query(int l,int r){return query(r)-query(l-1);}
int main()
{
	scanf("%d %d",&n,&q);
	for(rint i=1;i<=n;++i)
	{
		scanf("%d",&a[i]);
		update(i,a[i]);
	}
	for(rint i=1,opt,li,ri;i<=q;++i)
	{
		scanf("%d",&opt);
		if(opt==1)
		{
			scanf("%d %d",&li,&ri);
			update(li,ri);
		}
		else
		{
			scanf("%d %d",&li,&ri);
			printf("%lld\n",Query(li,ri));
		}
	}
	return 0;
}

猜你喜欢

转载自www.cnblogs.com/xingmi-weiyouni/p/11861063.html
今日推荐