P3374 模板树状数组 1(单点修改区间查询)(树状数组)

Posted SSL_LKJ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P3374 模板树状数组 1(单点修改区间查询)(树状数组)相关的知识,希望对你有一定的参考价值。

单点修改区间查询

题目传送门
在这里插入图片描述
在这里插入图片描述

解题思路

树状数组的模板题

AC代码

#include<cstdio>
using namespace std;
long long n,m,c[1000005];
long long lowbit(long long x)//lowbit
{
	return x&-x;
}
void update(long long x,long long y)//修改
{
	for(long long i=x;i<=n;i+=lowbit(i))c[i]+=y;
}
long long query(long long x)//查询
{
	long long ans=0;
	for(long long i=x;i;i-=lowbit(i))ans+=c[i];
	return ans;
}
int main()
{
	scanf("%lld%lld",&n,&m);
	for(long long i=1;i<=n;i++)
	{
		long long x;
		scanf("%lld",&x);
		update(i,x);
	}
	while(m--)
	{
		long long t;
		scanf("%lld",&t);
		if(t==1)
		{
			long long x,k;
			scanf("%lld%lld",&x,&k);
			update(x,k);
		}
		else 
		{
			long long x,y;
			scanf("%lld%lld",&x,&y);
			printf("%lld\\n",query(y)-query(x-1));
		}
	}
	return 0;
}

谢谢

以上是关于P3374 模板树状数组 1(单点修改区间查询)(树状数组)的主要内容,如果未能解决你的问题,请参考以下文章

Luogu P3374 模板树状数组 1[单点修改-区间查询]

树状数组模板1(例题洛谷P3374)(单点修改+区间查询)

线段树 P3374 单点修改 区间查询

P3374 模板树状数组 1

树状数组模板1——单点修改区间查询

树状数组模板(持续更新)