hdu 1166 敌兵布阵 (线段树)

http://acm.hdu.edu.cn/showproblem.php?pid=1166

最基础的线段树,单点更新。完全跟着HH的代码风格写的。

code:

#include<cstdio>
#define lson l, m, rt<<1
#define rson m+1, r, rt<<1|1
const int maxn = 50005 ;
int sum[maxn<<2] ;
void PushUp(int rt){
    sum[rt] = sum[rt<<1] + sum[rt<<1|1] ;
}
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) ;
    PushUp(rt) ;
}
void update(int p, int add, int l, int r, int rt){
    if(l==r){
        sum[rt] += add ;
        return ;
    }
    int m = (l + r) >> 1 ;
    if(p<=m)    update(p, add, lson) ;
    else        update(p, add, rson) ;
    PushUp(rt) ;
}
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 ret = 0 ;
    if(L<=m)    ret += query(L, R, lson) ;
    if(R>m)     ret += query(L, R, rson) ;
    return ret ;
}
int main(){
    int t=1, T, n, i, j, a, b ;
    char str[10] ;
    scanf("%d", &T) ;
    while(T--){
        scanf("%d", &n) ;
        build(1, n, 1) ;
        printf("Case %d:\n", t++) ;
        while(1){
            scanf("%s", str) ;
            if(str[0]=='E'break ;
            scanf("%d%d", &a, &b) ;
            if(str[0]=='A') update(a, b, 1, n, 1) ;
            else if(str[0]=='S') update(a, -b, 1, n, 1) ;
            else printf("%d\n", query(a, b, 1, n, 1)) ;
        }
    }
    return 0 ;} 

转载于:https://www.cnblogs.com/xiaolongchase/archive/2012/05/09/2491157.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/404137.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

将clover安装到硬盘EFI分区, 解决root device uuid is ...问题

其实说白了&#xff0c;很简单&#xff0c;照着配置图来&#xff0c;一招搞定&#xff0c;但是当你不知道这些配置的时候&#xff0c;将可能耗费你好几天的时间&#xff0c;而且还不一定得到最优解。 附“Clover v2k r2703.pkg"下载地址: http://download.csdn.net/deta…

IndiaHacks 2016 - Online Edition (Div. 1 + Div. 2) C. Bear and Up-Down 暴力

C. Bear and Up-Down题目连接&#xff1a; http://www.codeforces.com/contest/653/problem/C Description The life goes up and down, just like nice sequences. Sequence t1, t2, ..., tn is called nice if the following two conditions are satisfied: ti < ti …

Silverlight 5 新特性

微软Silverlight 团队在12月9日早上低调的发布了Silverlight 第五个版本-Silverlight 5. Silverlight 5 Available is Here 这也可能是Silverlight最后一个官方主要版本. Silverlight 5 可能作为官方发布最后一个Silverlight 版本. 官方提供各方面支持直到2021年. 支持的时间相…

VMware10出现VMware Workstation 不可恢复错误: (vmx)

在我的VMware10中安装了Ubuntu12&#xff0c; 昨晚还正常关机的呢&#xff0c;今天早上一打开&#xff0c;竟然报错了&#xff0c;错误如图&#xff1a; 上网搜索了下&#xff0c;没有找到比较合适的方法&#xff0c;最后&#xff0c;我在没有卸载VMware的情况下&#xff0c;重…

DB2中ixf文件的导入导出

1. 导出数据 语法&#xff1a;EXPORT TO <文件路径>/文件名.IXF OF IXF SELECT * FROM 表名 2. 导入数据 语法&#xff1a;db2 IMPORT FROM <路径>/<文件名>.IXF OF IXF MODIFIED BY FORCECREATE COMMITCOUNT 10000 REPLACE_CREATE INTO <表名> 简单语…

mysql 新建用户无法登陆

mysql新建用户无法登陆&#xff0c;出现1045错误&#xff0c;首先要授权&#xff0c;然后更新授权&#xff0c;最后也是大家不注意的一个重要步骤&#xff0c;一定要删除匿名用户。转载于:https://www.cnblogs.com/yeahdwb/archive/2012/05/11/2496365.html

React开发(274):ant design 时间显示秒

{getFieldDecorator(assessTimeStamp, {initialValue: [moment(updateDataSource.assessStartTime),moment(updateDataSource.assessEndTime),],})(<RangePicker format"YYYY-MM-DD HH:mm:ss" showTime />)}

Ubuntu12中samba环境搭建与使用

这里简单地整理了下(最好以root身份来执行以下命令)&#xff1a; # ready: update source apt-get update# install samba software apt-get install samba apt-get install smbfs# create samba shared folder mkdir /home/zcm/work# config samba: vi /etc/samba/smb.conf se…

Android新手入门2016(10)--GridView

本文来自肥宝传说之路&#xff0c;引用必须注明出处&#xff01; GridView跟ListView一样是多控件布局。实现九宫图是最方便的。 还是先看看图&#xff0c;没图说个鸡鸡是不是 如上图&#xff0c;是一种应用方式&#xff0c;在每个格子里面&#xff0c;放入应用图标&#xff0c…

Java开发环境搭建详解

Java开发环境搭建详解 http://topic.csdn.net/u/20110829/13/BF4FAA45-3E1A-48A8-BC46-0405B7F862A2.html 一。jdk安装与配置 jdk7于3月份刚刚发布&#xff0c;目前eclipse的最新版本中还没有提供对jdk7的编译支持&#xff0c;所以我们只下载jdk6。 下载地址&#xff1a;http:…

linux查看文件和目录大小(du)

From: http://www.2cto.com/os/201210/160665.html linux查看文件和目录大小(du)起因工作中或者日常使用ubuntu时候&#xff0c;经常会遇到查看当前系统容量的情况&#xff0c;这时候就需要我们使用命令来查询当前目录或者文件的大小了目录的容量&#xff08;du&#xff09;语法…

《云计算核心技术剖析》读书笔记之一

http://book.douban.com/subject/6382788/ 通过2周的时间&#xff0c;阅读完了由吴朱华编著的《云计算核心技术剖析》一书。同时国内由CSDN协办的第四届云计算大会要开幕&#xff0c;我在这里把自己写下这本书的读书笔记。这本书是2011年出版&#xff0c;但是在这本书上对微软的…

第四周仿真作业

经过第四周关于交流电机的学习&#xff0c;我们通过对起调速特性的了解&#xff0c;进行仿真&#xff1a; 控制电机带重物上升&#xff0c;从静止加速到800r/min保持800r/min匀速运动0.5s&#xff0c;减速到静止&#xff0c;保持静止状态0.5s&#xff0c;带重物下降&#xff0c…

GVim中以十六进制方式打开文件

在windows下&#xff0c;有时我们想用GVim以十六进制形式来打开一个文件&#xff0c;下面就是不错的方法&#xff0c;将它作为一个右键菜单方式加入&#xff1a; 1. 将"GVim Hex"加入到右键菜单, 将以下内容添加到一个xxx.reg文件&#xff0c;再双击运行一次即可&am…

Cisco Nexus 1000V

Cisco Nexus 1000V包含VEM和VSM两部分&#xff0c;其中VEM运行在ESXi服务器上取代VMware原有的虚拟交换机&#xff0c;VSM是一个单独运行的虚拟机&#xff0c;提供CLI接口&#xff0c;用于管理和配置整个虚拟交换机。 Cisco Nexus 1000V的具体安装步骤如下&#xff1a; 安装环境…

HTML5背景音乐的暂停与播放

HTML代码&#xff1a; <audio id"myaudio" loop"loop" preload"auto" autoplay"autoplay"> <source src"music/纯音乐%20-%20在那遥远的地方%20-%20纯音乐版.mp3" type"audio/ogg&qu…

React开发(277):ant design time刚进入页面时间重置

activityTimeStamp.length 0? null: [moment(activityTimeStamp[0]),moment(activityTimeStamp[1])],