hdu 1166 敌兵布阵(裸树状数组)
来源:互联网 发布:人民币汇率波动率数据 编辑:程序博客网 时间:2024/05/28 05:13
今天在LRJ的 训练之南里看到了树状数组 原来还有个名字叫 二叉索引树 于是看了一下 加深了对数组数组的理解 遂把以前写的BIT题温习一下 然后敲那道困扰了我还就的 ping pong
题目太啰嗦了。。。题意是给出n 然后n个整数 是初始值 四种命令 add sub query end
end就是命令结束了
这就是纯纯的BIT了。
#include<stdio.h>#include<string.h>#define lowbit(t) (t&(-t))const int maxn=50005;int sum[maxn];int c[maxn];int N;void add(int n,int num){ while(n<=N) { c[n]+=num; n+=lowbit(n); }}int q(int a){ int sum=0; while(a) { sum += c[a]; a-=lowbit(a); } return sum;}int main(){ int T;scanf("%d",&T); int i,ans,n,a,b,ca=1; char str[20]; for(i=1;i<=10;++i) printf("%d ",i-lowbit(i)); // printf("\n"); while(T--) { scanf("%d",&N); printf("Case %d:\n",ca++); sum[0]=c[0]=0; for(i=1;i<=N;++i) { scanf("%d",&a); sum[i]=sum[i-1]+a; c[i]=sum[i]-sum[i-lowbit(i)]; } while(scanf("%s",str),strcmp(str,"End")) { scanf("%d %d",&a,&b); if(str[0]=='Q') { ans= q(b)-q(a-1); printf("%d\n",ans); } else { if(str[0]=='S') b=-b; add(a,b); } } } return 0;}
- hdu 1166 敌兵布阵(裸树状数组)
- hdu 1166 敌兵布阵 (树状数组)
- (树状数组) hdu 1166 敌兵布阵
- HDU 1166 敌兵布阵【树状数组】
- HDU-1166-敌兵布阵(树状数组)
- hdu 1166 敌兵布阵 <树状数组>
- hdu - 1166 - 敌兵布阵(树状数组)
- hdu 1166 敌兵布阵【树状数组入门】
- hdu 1166 敌兵布阵 树状数组
- hdu hdoj 1166 敌兵布阵 树状数组
- HDU--1166 -- 敌兵布阵 [树状数组]
- hdu 1166 敌兵布阵 (树状数组)
- HDU 1166 - 敌兵布阵(树状数组)
- 树状数组-再说敌兵布阵(HDU 1166)
- hdu 1166 敌兵布阵 ( 树状数组 )
- HDU-1166 敌兵布阵 简单树状数组
- HDU 1166 敌兵布阵(树状数组)
- HDU 1166 敌兵布阵(树状数组)
- COPY 将压缩包伪装成图片,并显示图片
- jboss中 web-console 登录的用户名和密码设置
- 实习七月,随便写写
- 整数划分问题
- sql server2008 检查是否需要挂起计算机重新启动。挂起重新启动会导致安装程序失败
- hdu 1166 敌兵布阵(裸树状数组)
- python的{}字典操作
- UML用例图之泛化(generalization)、扩展(extend)和包含(include)关系
- iOS中需要注意的事情
- UIActivityIndicatorView 详解
- 关于学习linux的建议(转载)
- Activity之间传递类对象
- mahout 读书
- .JBOSS 4.3.0 EAP Clustering with multiple instances running on Same machine balanced with Apache HTT