Hdu 1166 敌兵布阵 (树状数组版)
2012-09-14 19:42
225 查看
复习下树状数组:
#include<cstdio> #include<cstring> #define sf scanf #define pf printf //my 171ms AC //显然这道题目用树状数组比线段树简单的多,所以再写个树状数组复习下。 const int N=50000+10; int a ,sum ; void add(int i,int j){ while(i<N){ sum[i]+=j; i+=(i&(-i)); } } int query(int i){ int ans=0; while(i>0){ ans+=sum[i]; i-=(i&(-i)); } return ans; } int main() { int t,n,i,j,q=1; sf("%d",&t); while(t--){ memset(sum,0,sizeof(sum)); sf("%d",&n); for(i=1;i<=n;i++){ sf("%d",a+i); add(i,a[i]); } char s[10]; pf("Case %d:\n",q++); while(sf("%s",s)!=EOF){ if(s[0]=='E') break; sf("%d%d",&i,&j); if(s[0]=='Q') pf("%d\n",query(j)-query(i-1)); if(s[0]=='A') add(i,j); if(s[0]=='S') add(i,-j); } } return 0; }
相关文章推荐
- HDU 1166 敌兵布阵 树状数组 区间求和
- hdu 1166 敌兵布阵 (树状数组)
- (树状数组) hdu 1166 敌兵布阵
- HDU-1166-敌兵布阵【树状数组】
- 【HDU】-1166-敌兵布阵(树状数组,线段树)
- HDU 1166 敌兵布阵 典型的树状数组求解
- HDU 1166 敌兵布阵 【简单的树状数组||线段树】
- hdu 1166 敌兵布阵(水...线段树&&树状数组)
- HDU 1166 敌兵布阵 (线段树基础&树状数组基础)
- HDU 1166 敌兵布阵(树状数组)
- hdu 1166 敌兵布阵 (树状数组)
- HDU-1166 敌兵布阵 简单树状数组
- hdu 1166 敌兵布阵(树状数组)
- HDU 1166 敌兵布阵(树状数组)
- HDU 1166 敌兵布阵 (树状数组)
- Hdu 1166 敌兵布阵 树状数组 或 线段树 单点更新,区间求和
- hdu 1166 敌兵布阵 树状数组求区间和和修改点的值
- HDU 1166 敌兵布阵 树状数组
- HDU 1166 敌兵布阵(树状数组)
- hdu 1166 敌兵布阵(树状数组)