hdu 1166 敌兵布阵(树状数组)
2014-08-01 11:02
190 查看
思路:树状数组 // cin , cout 会超时
#include<iostream> #include<stdio.h> #include<cstring> using namespace std; const int maxn=50000 +100; int n,c[maxn]; char s[10]; int lowbit(int i) { return i&-i; } void update(int i,int val)//更新函数 { while(i<=n) { c[i]+=val; i+=lowbit(i); } } int sum(int i)//求和函数 { int sum=0; while(i>0) { sum+=c[i]; i-=lowbit(i); } return sum; } int main() { int t; scanf("%d",&t); int m; m=0; int i,j; while(t--) { memset(c,0,sizeof(c)); m++; cout<<"Case "<<m<<":"<<endl; scanf("%d",&n); for(i=1;i<=n;i++) { int val; scanf("%d",&val); update(i,val); } while(scanf("%s",s) &&s[0]!='E') { scanf("%d%d",&i,&j); if(s[0]=='A') update(i,j); else if(s[0]=='S') update(i,-j); else if(s[0]=='Q') printf("%d\n",sum(j)-sum(i-1) ); } } 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 敌兵布阵 (树状数组)