线段树。

 #include <stdio.h>

 #define maxn 55555

 int sums[maxn<<];

 void PushUP(int rt) {
sums[rt] = sums[rt<<] + sums[rt<<|];
} void build(int l, int r, int rt) {
int m;
if (l == r) {
scanf("%d", &sums[rt]);
return ;
}
m = (l+r)>>;
build(l, m, rt<<);
build(m+, r, rt<<|);
PushUP(rt);
} void update(int des, int delta, int l, int r, int rt) {
int m;
if (l == r) {
sums[rt] += delta;
return ;
}
m = (l+r)>>;
if (des <= m)
update(des, delta, l, m, rt<<);
else
update(des, delta, m+, r, rt<<|);
PushUP(rt);
} int query(int ll, int rr, int l, int r, int rt) {
int m, val = ;
if (ll<=l && rr>=r)
return sums[rt]; m = (l+r)>>;
if (ll <= m)
val += query(ll, rr, l, m, rt<<);
if (m < rr)
val += query(ll, rr, m+, r, rt<<|); return val;
} int main() {
int case_n, n;
char cmd[];
int i, j, k; scanf("%d", &case_n); for (k=; k<=case_n; ++k) {
scanf("%d", &n);
build(, n, );
printf("Case %d:\n", k);
while () {
scanf("%*c%s", cmd);
if (cmd[] == 'E')
break;
scanf("%d %d", &i, &j);
if (cmd[] == 'Q')
printf("%d\n", query(i,j,,n,));
else if (cmd[] == 'A')
update(i, j, , n, );
else
update(i, -j, , n, );
}
} return ;
}

【HDOJ】1166 敌兵布阵的更多相关文章

  1. 线段树(单点更新)/树状数组 HDOJ 1166 敌兵布阵

    题目传送门 /* 线段树基本功能:区间值的和,修改某个值 */ #include <cstdio> #include <cstring> #define lson l, m, ...

  2. HDOJ 1166.敌兵布阵

    2015-06-08 问题简述: 原题的题意相当于有一些连续摆放的箱子,里面装着球,球的数量可以加减,现要查询几个连续的箱子里球的总数,其中存在放球和拿球的操作. 原题链接:http://acm.hd ...

  3. hdoj 1166 敌兵布阵【线段树求区间最大值+单点更新】

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  4. hdoj 1166 敌兵布阵 线段数和树状数组

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  5. hdoj 1166 敌兵布阵(树状数组)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1166 思路分析:该问题为动态连续和查询问题,使用数组数组可以解决:也可使用线段树解决该问题: 代码如下 ...

  6. HDOJ 1166 敌兵布阵 (线段树)

    题目: Problem Description C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A国在海岸线沿直线布置了N个工兵营地,Derek和Ti ...

  7. HDOJ(HDU).1166 敌兵布阵 (ST 单点更新 区间求和)

    HDOJ(HDU).1166 敌兵布阵 (ST 单点更新 区间求和) 点我挑战题目 题意分析 根据数据范围和询问次数的规模,应该不难看出是个数据结构题目,题目比较裸.题中包括以下命令: 1.Add(i ...

  8. HDU 1166 敌兵布阵 (树状数组)

    题目链接 : http://acm.hdu.edu.cn/showproblem.php?pid=1166 敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    ...

  9. hdu acm 1166 敌兵布阵 (线段树)

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  10. hud 1166 敌兵布阵

    http://acm.hdu.edu.cn/showproblem.php?pid=1166 敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory ...

随机推荐

  1. Android手机出现"已安装了存在签名冲突的同名数据包"的原因及解决办法

    http://blog.csdn.net/dyllove98/article/details/8830264 如果你不是开发者:如果你在android上更新一个已经安装过较早版本软件时,安装到最后一步 ...

  2. .net的 async 和 await

    async 和 await 出现在C# 5.0之后,关系是两兄弟,Task是父辈,Thread是爷爷辈,这就是.net 多线程处理的东西,具体包括 创建线程,线程结果返回,线程中止,线程中的异常处理 ...

  3. 定位相关-CLLocationManager的使用。

    #import "ViewController.h" #import <CoreLocation/CoreLocation.h> @interface ViewCont ...

  4. 贪心算法:旅行商问题(TSP)

    TSP问题(Traveling Salesman Problem,旅行商问题),由威廉哈密顿爵士和英国数学家克克曼T.P.Kirkman于19世纪初提出.问题描述如下: 有若干个城市,任何两个城市之间 ...

  5. 关于C++对汉字拼音的处理(3)

    之所以汉字转拼音的博文能出到3,主要是因为没有很完美的C++的解决方案,但是写到了这里可以有一个小结了. 以前的方法都有这种那种弊端,如果出现了无法识别的汉字(简体的)就无法修改处理了,但是下面的这种 ...

  6. spring setter方法注入

    <bean id="dao" class="Dao"></bean> <bean id="service" c ...

  7. jira汉化,破解,升级

    交给我这个任务,我先在网络上查了,好些资料,先实验的是6.3.6版本的,这个安装包我是从csdn上下载的.tar.gz的安装,汉化过程也都没有问题.但是在运行过程中不显示下拉菜单,于是我又在官网下载的 ...

  8. IE11的CSS兼容性问题

    最近测试给了我一大堆BUG,一瞅发现全是IE11的.吐槽一下这个浏览器真的比较特立独行.很多默认的样式跟别的浏览器不同,而且最明显的一点应该是padding左右内边距往往比别的浏览器大了一倍.但是当需 ...

  9. linux下安装phpredis

    一.redis安装 1. yum install redis (不行的先执行:yum install epel-release,再yum install redis) 2.启动服务 redis-ser ...

  10. PHP通过(PDO)Mysql表字段一键生成创建sqlite的SQL

    首发于:http://www.zzzzy.com/201406053158.html /** * Mysql表字段一键生成创建sqlite的SQL 2 * @author: Skiychan < ...