Description

一行N个方格,开始每个格子里都有一个整数。现在动态地提出一些问题和修改:提问的形式是求某一个特定的子区间[a,b]中所有元素的和;修改的规则是指定某一个格子x,加上或者减去一个特定的值A。现在要求你能对每个提问作出正确的回答。1≤N<100000,,提问和修改的总数m<10000条。

Input

输入文件第一行为一个整数N,接下来是n行n个整数,表示格子中原来的整数。接下一个正整数m,再接下来有m行,表示m个询问,第一个整数表示询问代号,询问代号1表示增加,后面的两个数x和A表示给位置X上的数值增加A,询问代号2表示区间求和,后面两个整数表示a和b,表示要求[a,b]之间的区间和。

Output

共m行,每个整数

Sample Input

6

4

5

6

2

1

3

4

1 3 5

2 1 4

1 1 9

2 2 6

Sample Output

22

22

Hint

1≤N≤100000, m≤10000 。

Solution

我写了树状数组,练手的= = ,当模板罢.

 1 var
 2   f:array [1..1000000] of longint;
 3   n,m,i,p,x,l,r,a:longint;
 4
 5 function lowbit(x:longint):longint;
 6 begin
 7   lowbit:=x and (-x);
 8 end;
 9
10 procedure plus(x,a:longint);
11 begin
12   if x>n then exit;
13   f[x]:=f[x]+a;
14   plus(x+lowbit(x),a);
15 end;
16
17 function query(x:longint):longint;
18 begin
19   query:=0;
20   if x<=0 then exit;
21   query:=f[x];
22   query:=query+query(x-lowbit(x));
23 end;
24
25 begin
26   read(n);
27   for i:=1 to n do
28     begin
29       read(a);
30       plus(i,a);
31      end;
32   read(m);
33   for i:=1 to m do
34     begin
35       read(x);
36       if x=1
37         then begin read(p,x);plus(p,x); end
38         else begin read(l,r);writeln(query(r)-query(l-1)); end;
39     end;
40 end.

转载于:https://www.cnblogs.com/raymondchen/p/6067048.html

【CodeVS1080】线段树练习相关推荐

  1. codevs1080线段树练习

    1080 线段树练习(http://codevs.cn/problem/1080/)  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题目描述 Descr ...

  2. 二逼平衡树——树套树(线段树套Splay平衡树)

    题面 Bzoj3196 解析 线段树和Splay两棵树套在一起,常数直逼inf,但最终侥幸过了 思路还是比较简单, 在原数组维护一个下标线段树,再在每一个线段树节点,维护一个对应区间的权值Splay. ...

  3. 线段树——HDU - 1698

    题目含义 就是初始化一堆数为1 可以经过操作把一个区间的数都改变 并求这堆数的总大小 题目分析 有一个 #include<iostream> #include<stdio.h> ...

  4. BZOJ.1558.[JSOI2009]等差数列(线段树 差分)

    BZOJ 洛谷 首先可以把原序列\(A_i\)转化成差分序列\(B_i\)去做. 这样对于区间加一个等差数列\((l,r,a_0,d)\),就可以转化为\(B_{l-1}\)+=\(a_0\),\(B ...

  5. 【线段树分治 线性基】luoguP3733 [HAOI2017]八纵八横

    不知道为什么bzoj没有HAOI2017 题目描述 Anihc国有n个城市,这n个城市从1~n编号,1号城市为首都.城市间初始时有m条高速公路,每条高速公路都有一个非负整数的经济影响因子,每条高速公路 ...

  6. [bzoj1582][Usaco2009 Hol]Holiday Painting 节日画画_线段树

    Holiday Painting 节日画画 bzoj-1582 Usaco-2009 Hol 题目大意:给定两个n*m的01网格图.q次操作,每次将第二个网格图的子矩阵全部变成0或1,问每一次操作后两 ...

  7. codefores 786B. Legacy(最短路,线段树优化拆点,好题)

    题目链接 B. Legacy time limit per test2 seconds memory limit per test256 megabytes inputstandard input o ...

  8. 【题解】BZOJ 3065: 带插入区间K小值——替罪羊树套线段树

    题目传送门 题解 orz vfk的题解 3065: 带插入区间K小值 系列题解 一 二 三 四 惨 一开始用了一种空间常数很大的方法,每次重构的时候merge两颗线段树,然后无限RE(其实是MLE). ...

  9. 树链剖分+线段树 HDOJ 4897 Little Devil I(小恶魔)

    题目链接 题意: 给定一棵树,每条边有黑白两种颜色,初始都是白色,现在有三种操作: 1 u v:u到v路径(最短)上的边都取成相反的颜色 2 u v:u到v路径上相邻的边都取成相反的颜色(相邻即仅有一 ...

  10. bzoj1095: [ZJOI2007]Hide 捉迷藏 线段树维护括号序列 点分治 链分治

    这题真是十分难写啊 不管是点分治还是括号序列都有一堆细节.. 点分治:时空复杂度$O(n\log^2n)$,常数巨大 主要就是3个堆的初始状态 C堆:每个节点一个,为子树中的点到它父亲的距离的堆. B ...

最新文章

  1. [微信小程序]this.setData , that.setData , this.data.val三者之间的区别和作用
  2. 你现在还在使用刷脸支付吗?不,刷手支付已来!!!不侵犯隐私、秒速支付...
  3. 域客户端如何定位并登录域控制器
  4. scratch小游戏脚本大全_酷酷带你一起做小游戏--跳一跳
  5. 毕业生必须知道:干部身份、三方协议、派遣证
  6. ML机器学习导论学习笔记
  7. 数据库系统(二)——数据更新和视图
  8. Docker : Docker安装Kibana
  9. BZOJ1370 [Baltic2003]Gang团伙
  10. 鼠标监听地图让我创造出个性的风格(地图开发)
  11. mysql客户sqlyog_MySQL客户端工具 SQLyog
  12. 饿了么UI组件库中,Upload组件上传闪动的解决
  13. 小名的开源项目【EamonVenti】0.0篇 —— 学习如何搭建一个简单的SpringCloud架构,体验微服务的强大!
  14. 合影效果java_〖摄影技术〗6个姿势,教你拍好合影
  15. 如何安装Chrome扩展程序或插件
  16. 2020版影视制作学习路线图(含大纲+视频+工具+书籍+面试)
  17. 交换机短路_交换机环路发现及处理
  18. LDAP 中的 RDN
  19. e480换高分屏_ThinkPadE480电脑(i5-8250u 8G内存 256G固态 高分屏0QCD 14英寸) 京东5699元...
  20. Mixed-Integer Optimization with Constraint Learning

热门文章

  1. 小白都能看懂的目前主流加密MD5验签
  2. 网络推广公司网站该如何针对主页的优化工作?
  3. 网络推广专员如何稳定搜索引擎首页排名全力以赴致力于网络推广
  4. 如何通过网站优化的方式提升网站转化率?
  5. 网站优化之交换友情链接应注意什么?
  6. 计算机课程成绩表排名怎么算,微机原课程设计学生成绩名次表设计.doc
  7. 计算机专业的个人实习报告范文,大学计算机专业的个人实习报告范文
  8. 赛码浪潮笔试题库软件实施岗位_2020年浪潮软件类笔试题
  9. ida android sign加密,最右sign-v2签名算法追踪及逆向还原
  10. spark 朴素贝叶斯