标签:ane esc 速度 put div space log 树状数组 names
Description
Input
Output
Sample Input
1 10 1 2 3 4 5 6 7 8 9 10 Query 1 3 Add 3 6 Query 2 7 Sub 10 2 Add 6 3 Query 3 10 End
Sample Output
Case 1: 6 33 59
#include<iostream> #include<stdio.h> #include<string.h> using namespace std; const int N=50000+10; int a[N],sum[N*4]; int n; int lowbit(int p) { return p&(-p); } void update(int p,int x) { while(p<=n) { sum[p]+=x; p+=lowbit(p); } } int get_sum(int p) { int res=0; while(p>0) { res+=sum[p]; p-=lowbit(p); } return res; } int main() { int t,cas=1; scanf("%d",&t); while(t--) { memset(sum,0,sizeof(sum)); printf("Case %d:\n",cas++); scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&a[i]); update(i,a[i]); } char s[10]; while(scanf("%s",s)) { if(s[0]==‘E‘) break; int x,y; scanf("%d%d",&x,&y); if(s[0]==‘A‘) update(x,y); else if(s[0]==‘S‘) update(x,-y); else if(s[0]==‘Q‘) { int ans=get_sum(y)-get_sum(x-1); printf("%d\n",ans); } } } return 0; }
标签:ane esc 速度 put div space log 树状数组 names
原文地址:http://www.cnblogs.com/iwantstrong/p/6075826.html