HDU 1166 敌兵布阵(2)
2012-05-07 12:36
489 查看
http://acm.hdu.edu.cn/showproblem.php?pid=1166
老题新做,树状数组,比线段树省了300k内存
View Code
老题新做,树状数组,比线段树省了300k内存
View Code
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> const int maxn=51000; int s[maxn]; int nCase=1,n; int lowbit(int i){return i&(-i);} void update(int i,int val) { while(i<=n) { s[i]+=val; i+=lowbit(i); } } int Sum(int i) { int sum=0; while(i>0) { sum+=s[i]; i-=lowbit(i); } return sum; } int main() { int t,i,val; scanf("%d",&t); while(t--) { memset(s,0,sizeof(s)); scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%d",&val); update(i,val); } char op[10]; printf("Case %d:\n",nCase++); while(scanf("%s",op)) { if(op[0]=='E')break; int a,b; scanf("%d%d",&a,&b); if(op[0]=='A')update(a,b); else if(op[0]=='S')update(a,-b); else printf("%d\n",Sum(b)-Sum(a-1)); } } return 0; }
相关文章推荐
- HDu1166敌兵布阵(树状数组)
- HDU-1166 敌兵布阵 树状数组
- hdu 1166 敌兵布阵(线段树)
- HDU 1166 敌兵布阵
- HDU 1166 敌兵布阵(线段树单点更新)
- hdu1166 敌兵布阵(线段树)
- hdu-1166 敌兵布阵(线段树的增删查改)
- hdu 1166 敌兵布阵
- HDU 1166 敌兵布阵 树状数组模板
- hdu 1166 敌兵布阵 线段树 点修改_求和
- HDU:1166 敌兵布阵(线段树)
- HDU 1166 敌兵布阵
- hdu1166 敌兵布阵
- HDU 1166 敌兵布阵 线段树
- hdu 1166 敌兵布阵(线段树)
- hdu 1166 敌兵布阵(线段树,树状数组)
- HDU 1166 (敌兵布阵)
- HDU 1166 敌兵布阵 线段树
- Hdu 1166 敌兵布阵 解题报告
- HDU-1166-敌兵布阵(线段树 插点问线)