单点修改,区间求和

 //
// Created by helica on 2018/3/18.
// //zkw #include <cstdio>
#include <cstring>
#include <cstdlib>
#include <algorithm> using namespace std; const int N = + ; int s,t,M=,n;
int T[N << ]; int query(int s, int t){
int ans = ;
for (s = s+M-,t=t+M+; s^t^ ; s>>=,t>>=) {
if(~s&) ans += T[s^];
if( t&) ans += T[t^];
}
return ans;
} void add(int x, int v){
T[M+x] += v;
for(int i=(M+x)>>; i; i>>=) T[i] = T[i<<] + T[i<<|];
} void sub(int x, int v){
T[M+x] -= v;
for(int i=(M+x)>>; i; i>>=) T[i] = T[i<<] + T[i<<|];
} int main(){
int k;
scanf("%d", &k);
for(int kase=;kase<=k;kase++){
scanf("%d", &n); memset(T, , sizeof T);
for(M=;M<n;M<<=); for(int i=,tmp;i<n;i++){
scanf("%d", &tmp);
add(i+, tmp);
}
printf("Case %d:\n", kase);
char op[];
while(scanf("%s", op)){
if (op[] == 'E') break;
else if(op[] == 'Q'){
scanf("%d %d", &s, &t);
printf("%d\n", query(s, t));
}else if(op[] == 'A'){
scanf("%d %d", &s, &t);
add(s, t);
}else if(op[] == 'S'){
scanf("%d %d", &s, &t);
sub(s, t);
}
}
}
}

HDU1166-ZKW树的更多相关文章

  1. HDU1754 && HDU1166 线段树模板题

    HDU1754 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1754 题目分析:对于给出的一个很长的区间,对其进行单点更新值和区间求最大值的操作,由于 ...

  2. HDU1166线段树(单点更新,区间求和)

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

  3. 14-敌兵布阵(HDU1166线段树 & 树状数组)

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

  4. hdu1166(线段树单点更新&区间求和模板)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1166 题意:中文题诶- 思路:线段树单点更新,区间求和模板 代码: #include <iost ...

  5. hdu1166 线段树

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

  6. HDU1166 线段树裸题 区间求和

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

  7. HDU 1166 敌兵布阵 树状数组小结(更新)

    树状数组(Binary Indexed Tree(BIT), Fenwick Tree) 是一个查询和修改复杂度都为log(n)的数据结构.主要用于查询任意两位之间的所有 元素之和,但是每次只能修改一 ...

  8. bzoj4240 zkw版

    复习一波zkw树                                                                      很显然最后建出来的图不是单调序列就是一个类似 ...

  9. ACM训练计划建议(写给本校acmer,欢迎围观和指正)

    ACM训练计划建议 From:freecode#  Date:2015/5/20 前言: 老师要我们整理一份训练计划给下一届的学弟学妹们,整理出来了,费了不少笔墨,就也将它放到博客园上供大家参考. 菜 ...

  10. ACM训练计划建议(转)

    ACM训练计划建议 From:freecode#  Date:2015/5/20 前言: 老师要我们整理一份训练计划给下一届的学弟学妹们,整理出来了,费了不少笔墨,就也将它放到博客园上供大家参考. 菜 ...

随机推荐

  1. Java——容器类库框架浅析

    前言 通常,我们总是在程序运行过程中才获得一些条件去创建对象,这些动态创建的对象就需要使用一些方式去保存.我们可以使用数组去存储,但是需要注意数组的尺寸一旦定义便不可修改,而我们并不知道程序在运行过程 ...

  2. SpringBoot从零到上线

    SpringBoot精要 SpringBoot的四个核心 1.自动配置:针对很多Spring应用程序常见的应用功能,SpringBoot能自动提供相关配置. 在任何Spring应用程序的源代码中,都可 ...

  3. 学习笔记—log4j2

    概念 什么是日志 日志是系统运行过程中的后台输出信息,方便程序员进行系统运行的管控以及Bug的查找. log4j2的概念 log4j2是一个日志输出的插件,专门用来进行日志的管理. Log4j是Apa ...

  4. 从0到1搭建AI中台

    文章发布于公号[数智物语] (ID:decision_engine),关注公号不错过每一篇干货. 转自 | 宜信技术学院 作者 | 井玉欣 导读:随着“数据中台”的提出和成功实践,各企业纷纷在“大中台 ...

  5. python的学习笔记__初识函数

    函数定义与调用 #函数定义 def mylen(): """计算s1的长度""" s1 = "hello world" ...

  6. Retrofit+MVP框架封装记录篇

    当下最流行的网络请求组合,retrofit2+okhttp+rxjava+mvp 这里是封装记录篇 首先分模块,比如登录 先来说封装后的使用 package com.fragmentapp.login ...

  7. MIUI12系统怎么样开启Root超级权限的流程

    MIUI12系统能有啥方法开启root超级权限?各位都清楚,Android机器有root超级权限,如果手机开启root相关权限,可以实现更好的功能,举例子,各位公司的营销部门,使用某些营销软件都需要在 ...

  8. 解决SVN Cleanup错误: Failed to run the WC DB work queue associated with

    [内容来源自https://www.cnblogs.com/ANCAN-RAY/p/8961832.html] 在svn本地目录更新文件夹时,更新失败. 然后svn提示我,让我cleanup一下,于是 ...

  9. java连接sql server数据库(使用用户sa)

    一.安装数据库相关软件 sql server management studio是管理sql server数据库的软件,想要使用需到微软官网下载安装sql server,然后再安装sql server ...

  10. IDEA 代码风格设置

    1.类注释 File -> Settings -> Editor -> File and Code Templates -> Includes -> FileHeader ...