【51nod_3120】小陶的疑惑
题目描述思路:树状数组模板题codecodecode#include<iostream>#include<cstdio>using namespace std;long long a[1010000], c[1000100];long long n, m;long long lowbit(long long x){return x&-x;}void add(long
·
题目描述
思路:
树状数组模板题
codecodecode
#include<iostream>
#include<cstdio>
using namespace std;
long long a[1010000], c[1000100];
long long n, m;
long long lowbit(long long x)
{
return x&-x;
}
void add(long long x, long long y)
{
for(; x<=n; x+=lowbit(x))
{
c[x]+=y;
}
}
long long query(long long x)
{
long long ans=0;
for(; x; x-=lowbit(x))
{
ans+=c[x];
}
return ans;
}
int main()
{
scanf("%lld%lld", &n, &m);
for(long long i=1; i<=n; i++)
{
scanf("%lld", &a[i]);
add(i, a[i]);
}
while(m--)
{
long long k, x, y;
scanf("%lld%lld%lld", &k, &x, &y);
if(k==1)
add(x, y);
else printf("%lld\n", query(y)-query(x-1));
}
return 0;
}
更多推荐
所有评论(0)