nyist 116 士兵杀敌
网上资源很多,百度一下你就知道
代码:
#include<stdio.h>
#include<string.h>
#define N 1000010
int c[N],a[N];
int n = 0;
int l(int i)
{
return i&(-i);
}
void change(int i,int m)
{
int j;
for(j = i; j <= n; )
{
c[j] += m;
j += l(j);
}
}
int sum(int i)
{
int s = 0;
while(i>0)
{
s+=c[i];
i -= l(i);
}
return s;
}
int main()
{
int m;
scanf("%d%d",&n,&m);
memset(c,0,sizeof(c));
int i;
for(i =1 ; i <= n; i++ )
{
scanf("%d",&a[i]);
change(i,a[i]);
}
while(m--)
{
char ch[10];
int t,k;
scanf("%s",ch);
scanf("%d%d",&t,&k);
if(ch[0]=='A')
change(t,k);
else if(ch[0]=='Q')
printf("%d\n",sum(k)-sum(t-1));
}
return 0;
}