树状数组初学(2) ——杭电1166 敌兵布阵
来源:互联网 发布:淘宝装修生成 编辑:程序博客网 时间:2024/05/29 12:55
<pre name="code" class="cpp">#include <stdio.h>#include <string.h>#define maxn 50010int tree[maxn], n;void update(int x, int value);int getsum(int x);int main(){#if 0freopen("data.in", "r", stdin);#endifint T, a, kase = 0, i, x, y, ans;char order[10];scanf("%d", &T);while (T--) {scanf("%d", &n);memset(tree, 0, sizeof(tree));for (i = 1; i <= n; i++) {scanf("%d", &a);update(i, a);}printf("Case %d:\n", ++kase);while (scanf("%s", order) != EOF && strcmp(order, "End")) {scanf("%d%d", &x, &y); if (strcmp(order, "Add") == 0)update(x, y); /*第x个营地增加y个人*/else if (strcmp(order, "Sub") == 0)update(x, -y); <span style="font-family: Arial, Helvetica, sans-serif;">/*第x个营地减少y个人*/</span>else if (strcmp(order, "Query") == 0) {ans = getsum(y) - getsum(x - 1);/*求第x到第y个营地的总人数*/printf("%d\n", ans);}}}return 0;}void update(int x, int value){while (x <= n) {tree[x] += value;x += x & (-x);}return;}int getsum(int x) /*getsum(0) = 0*/{int sum = 0;while (x) {sum += tree[x];x -= x & (-x);}return sum;}
0 0
- 树状数组初学(2) ——杭电1166 敌兵布阵
- 杭电OJ 敌兵布阵 树状数组
- 【树状数组 + 简单题】杭电 hdu 1166 敌兵布阵
- 杭电1166 敌兵布阵 线段树and树状数组
- 杭电1166敌兵布阵 (用的树状数组)
- 敌兵布阵(杭电1166)(树状数组)
- 杭电 HDU ACM 1166 敌兵布阵(树状数组)
- 杭电 hdu 1166 敌兵布阵【树状数组过】
- 杭电1166敌兵布阵(树状数组)
- 杭电1166敌兵布阵(树状数组)
- 杭电1066 敌兵布阵(树状数组)
- 树状数组 ( 基础篇 )——敌兵布阵 ( HDU 1166 )
- HDU 1166 | 敌兵布阵 —— 树状数组
- hdu(1166):敌兵布阵—树状数组的应用
- 敌兵布阵 1166 树状数组
- 1166-敌兵布阵(树状数组)
- 【杭电oj】1166 - 敌兵布阵(线段树,树状数组)
- 敌兵布阵(树状数组)
- Day3、C语言数据类型、变量的输入与输出、进制的转换
- 移动音乐社交体验分析
- 模仿新浪微博要点记录1
- tjut 4336
- jjckb
- 树状数组初学(2) ——杭电1166 敌兵布阵
- 《Java源码分析》:Condition
- 关于Android主线程(ActivityThread)源代码分析以及一些特殊问题的非常规方法
- Qt 设置全局窗口,
- sql server 2008 R2 x86下载及安装说明
- JVM---第一篇内存区域划分
- 【HDU】5778 - abs(思维)
- 设计模式之建造模式
- Android TextView的垂直滚动效果