敌兵布阵
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 166714 Accepted Submission(s): 68150

Problem Description
C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手,但这些都逃不过C国的监视。
中央情报局要研究敌人究竟演习什么战术,所以Tidy要随时向Derek汇报某一段连续的工兵营地一共有多少人,例如Derek问:“Tidy,马上汇报第3个营地到第10个营地共有多少人!”Tidy就要马上开始计算这一段的总人数并汇报。但敌兵营地的人数经常变动,而Derek每次询问的段都不一样,所以Tidy不得不每次都一个一个营地的去数,很快就精疲力尽了,Derek对Tidy的计算速度越来越不满:"你个死肥仔,算得这么慢,我炒你鱿鱼!”Tidy想:“你自己来算算看,这可真是一项累人的工作!我恨不得你炒我鱿鱼呢!”无奈之下,Tidy只好打电话向计算机专家Windbreaker求救,Windbreaker说:“死肥仔,叫你平时做多点acm题和看多点算法书,现在尝到苦果了吧!”Tidy说:"我知错了。。。"但Windbreaker已经挂掉电话了。Tidy很苦恼,这么算他真的会崩溃的,聪明的读者,你能写个程序帮他完成这项工作吗?不过如果你的程序效率不够高的话,Tidy还是会受到Derek的责骂的.

Input
第一行一个整数T,表示有T组数据。
每组数据第一行一个正整数N(N<=50000),表示敌人有N个工兵营地,接下来有N个正整数,第i个正整数ai代表第i个工兵营地里开始时有ai个人(1<=ai<=50)。
接下来每行有一条命令,命令有4种形式:
(1) Add i j,i和j为正整数,表示第i个营地增加j个人(j不超过30)
(2)Sub i j ,i和j为正整数,表示第i个营地减少j个人(j不超过30);
(3)Query i j ,i和j为正整数,i<=j,表示询问第i到第j个营地的总人数;
(4)End 表示结束,这条命令在每组数据最后出现;
每组数据最多有40000条命令

Output
对第i组数据,首先输出“Case i:”和回车,
对于每个Query询问,输出一个整数并回车,表示询问的段中的总人数,这个数保持在int以内。

Sample Input
1
10
1 2 3 4 5 6 7 8 9 10
Query 1 3
Add 3 6
Query 2 7
Sub 10 2
Add 6 3
Query 3 10
End

Sample Output
Case 1:
6
33
59

#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
#define lson l, m, rt << 1
#define rson m + 1, r, rt << 1 | 1
const int maxn=50005;
typedef long long ll;
ll sum[maxn<<2]={0};
void build(int l,int r,int rt){if(l==r){scanf("%d",&sum[rt]);return;}int  m=(l+r)>>1;build(lson);build(rson);sum[rt]=sum[rt<<1]+sum[rt<<1|1];
}void update(int l,int r,int rt,int pos,int num){if(l==r&&pos==l){sum[rt]+=num;return ;}int  m=(l+r)>>1;if(pos<=m){update(lson,pos,num);}else update(rson,pos,num);sum[rt]=sum[rt<<1]+sum[rt<<1|1];
}int  query(int L,int R,int l,int r,int rt){if(L<=l&&R>=r){return sum[rt];}int m=(l+r)>>1;int temp=0;if(L<=m){temp+=query(L,R,lson);}if(R>m)temp+=query(L,R,rson);return temp;
}int main()
{int t,n,l,r;scanf("%d",&t);char s[10];for(int i=1;i<=t;i++){scanf("%d",&n);build(1,n,1);printf("Case %d:\n",i);while(scanf("%s",s)!=EOF){if(s[0]=='E')break;scanf("%d%d",&l,&r);if(s[0]=='Q'){printf("%d\n",query(l,r,1,n,1));}else if(s[0]=='A'){update(1,n,1,l,r);}else update(1,n,1,l,-r);}}return 0;}

hdu1166敌兵布(线段树模板题)相关推荐

  1. HDU1166 敌兵布阵 [线段树模板]

    题意:在序列中修改单点和查询区间和 #include<iostream> #include<cstdio> #include<cstring> #define ls ...

  2. hdu1166 敌兵布阵 线段树

    C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况.由于 ...

  3. A - 敌兵布阵(线段树模版题)

    传送门 C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情 ...

  4. HDU 1166 敌兵布阵(线段树:点更新,区间求和)

    HDU 1166 敌兵布阵(线段树:点更新,区间求和) http://acm.hdu.edu.cn/showproblem.php?pid=1166 题意: 给你n个整数,然后给你多条命令,每条命令如 ...

  5. 线段树模板题3:区间染色问题

    1.3线段树模板题3:区间染色问题 在DotA游戏中,帕吉的肉钩实际上是大多数英雄中最恐怖的东西.挂钩由长度相同的几个连续的金属棍组成. 现在,帕吉(Pudge)希望对挂接进行一些操作. 让我们将钩子 ...

  6. J.哭泣的阿木木(线段树模板题)

    哭泣的阿木木 Description 没啥用的背景故事: 在远古的恕瑞玛,有一个孤独而又忧郁的灵魂,阿木木.他在世间游荡,只为找到一个朋友.他遭受了一种远古的巫术诅咒,注定忍受永世的孤单,因为被他触碰 ...

  7. hdu1156(简单线段树 模板题)

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

  8. HDU1166 敌兵布阵【树状数组】

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

  9. 【线段树】[LUOGU 守墓人] [LUOGU 维护序列] 线段树模板题

    题目: 题目链接:[LUOGU 守墓人] 题解: 线段树单点修改,区间修改,单点查询,区间查询,一系列线段树基本操作,模板打就好. (回头再补一个分块和树状数组的这种板子题,就是用分块和树状数组再写一 ...

  10. 试题 算法训练 操作格子(线段树模板题)

    资源限制 内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 有n个格子,从左到右放成一排,编号为1-n. 共有m次操作,有3 ...

最新文章

  1. 《iOS应用逆向工程(第2版)》高清电子书 PDF
  2. ajax带来的主要问题有哪些,ajax面试题
  3. python gis 实例_用Python作GIS之五:从示例入手—example函数
  4. 如何将unity3d动画嵌入html,在Unity3D中使用精灵动画引擎制作动画的两种方法
  5. 华为官方开启Mate 40系列预热:即将推出敬请期待
  6. android 输入法出现挤压屏幕、android输入键盘覆盖了屏幕控件的解决办法
  7. 重磅!阿里发布全新操作系统,成功顶住多年双 11,这次要干翻 CentOS 了!
  8. LayaAir Sprite 旋转缩放
  9. hashCode()和equals()的若干问题
  10. Icons8 Cube4Nano专业外置声卡设备与windows event log无法启动
  11. 高效建站(华为云服务器速成篇)
  12. 有缓震功能的舒缓拖鞋能给运动后带来什么样的减压效果?
  13. 蓝桥杯JAVA-32.二维数组(矩阵)实现旋转模板(JAVA实现)
  14. gitlab ip变更runner拉取代码失败、shell启动springboot项目启动起来。
  15. lamp环境实战操作建立完全属于自己的博客站点
  16. pointpillars--kitti训练
  17. part01.03 委托与 Lambda 表达式(三):Lambda 表达式
  18. 神经网络常用和不常用损失函数
  19. 美国亚马逊卖家注册美国商标需要多少时间和费用?
  20. linux 日志 取证,Linux系统取证

热门文章

  1. sci二区计算机类有哪些期刊,二区材料类sci期刊有哪些
  2. cadence17.4 - Checking Hostname and HostID in license file Match Failed
  3. 分享一个无意间发现的躺赚网络创业小项目!
  4. 计算机专业必读的经典书籍!!(建议收藏)
  5. x265中的lookahead
  6. 第六章-循环控制结构
  7. 仿TT语音,语音游戏陪玩APP源码,社交属性强大
  8. 口诀计算机,PID算法的通俗讲解及调节口诀[计算机类]
  9. TCP有限状态机(全网最全)
  10. 个人免签码支付源码+监控APP 实测搭建成功