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(单点修改区间查询)(树状数组)的主要内容,如果未能解决你的问题,请参考以下文章