标签:size inpu add 10个 速度 tree style 读者 hdu
树状数组模板,然后。。。注意case i和冒号
#include<bits/stdc++.h> using namespace std; #define maxn 1000000 int n,tree[maxn],t,m,x,y,z; string s; int lb(int x) { return x&(-x); } void add(int pos,int x) { while(pos<=n) { tree[pos]+=x; pos+=lb(pos); } } int sum(int x,int y) { x--; int sum1=0,sum2=0; while(x) { sum1+=tree[x]; x-=lb(x); } while(y) { sum2+=tree[y]; y-=lb(y); } return sum2-sum1; } int main() { scanf("%d",&t); for(int i=1;i<=t;i++) { cout<<"Case "<<i<<":"<<endl; memset(tree,0,sizeof(tree)); scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&x); add(i,x); } while(1) { cin>>s; if(s[0]==‘E‘) break; scanf("%d%d",&x,&y); if(s[0]==‘Q‘) printf("%d\n",sum(x,y)); else{ if(s[0]==‘A‘) add(x,y); else add(x,-y); } } } return 0; }
标签:size inpu add 10个 速度 tree style 读者 hdu
原文地址:http://www.cnblogs.com/chen74123/p/7394471.html