【CodeVS1080】线段树练习
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】线段树练习相关推荐
- codevs1080线段树练习
1080 线段树练习(http://codevs.cn/problem/1080/) 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Descr ...
- 二逼平衡树——树套树(线段树套Splay平衡树)
题面 Bzoj3196 解析 线段树和Splay两棵树套在一起,常数直逼inf,但最终侥幸过了 思路还是比较简单, 在原数组维护一个下标线段树,再在每一个线段树节点,维护一个对应区间的权值Splay. ...
- 线段树——HDU - 1698
题目含义 就是初始化一堆数为1 可以经过操作把一个区间的数都改变 并求这堆数的总大小 题目分析 有一个 #include<iostream> #include<stdio.h> ...
- BZOJ.1558.[JSOI2009]等差数列(线段树 差分)
BZOJ 洛谷 首先可以把原序列\(A_i\)转化成差分序列\(B_i\)去做. 这样对于区间加一个等差数列\((l,r,a_0,d)\),就可以转化为\(B_{l-1}\)+=\(a_0\),\(B ...
- 【线段树分治 线性基】luoguP3733 [HAOI2017]八纵八横
不知道为什么bzoj没有HAOI2017 题目描述 Anihc国有n个城市,这n个城市从1~n编号,1号城市为首都.城市间初始时有m条高速公路,每条高速公路都有一个非负整数的经济影响因子,每条高速公路 ...
- [bzoj1582][Usaco2009 Hol]Holiday Painting 节日画画_线段树
Holiday Painting 节日画画 bzoj-1582 Usaco-2009 Hol 题目大意:给定两个n*m的01网格图.q次操作,每次将第二个网格图的子矩阵全部变成0或1,问每一次操作后两 ...
- codefores 786B. Legacy(最短路,线段树优化拆点,好题)
题目链接 B. Legacy time limit per test2 seconds memory limit per test256 megabytes inputstandard input o ...
- 【题解】BZOJ 3065: 带插入区间K小值——替罪羊树套线段树
题目传送门 题解 orz vfk的题解 3065: 带插入区间K小值 系列题解 一 二 三 四 惨 一开始用了一种空间常数很大的方法,每次重构的时候merge两颗线段树,然后无限RE(其实是MLE). ...
- 树链剖分+线段树 HDOJ 4897 Little Devil I(小恶魔)
题目链接 题意: 给定一棵树,每条边有黑白两种颜色,初始都是白色,现在有三种操作: 1 u v:u到v路径(最短)上的边都取成相反的颜色 2 u v:u到v路径上相邻的边都取成相反的颜色(相邻即仅有一 ...
- bzoj1095: [ZJOI2007]Hide 捉迷藏 线段树维护括号序列 点分治 链分治
这题真是十分难写啊 不管是点分治还是括号序列都有一堆细节.. 点分治:时空复杂度$O(n\log^2n)$,常数巨大 主要就是3个堆的初始状态 C堆:每个节点一个,为子树中的点到它父亲的距离的堆. B ...
最新文章
- [微信小程序]this.setData , that.setData , this.data.val三者之间的区别和作用
- 你现在还在使用刷脸支付吗?不,刷手支付已来!!!不侵犯隐私、秒速支付...
- 域客户端如何定位并登录域控制器
- scratch小游戏脚本大全_酷酷带你一起做小游戏--跳一跳
- 毕业生必须知道:干部身份、三方协议、派遣证
- ML机器学习导论学习笔记
- 数据库系统(二)——数据更新和视图
- Docker : Docker安装Kibana
- BZOJ1370 [Baltic2003]Gang团伙
- 鼠标监听地图让我创造出个性的风格(地图开发)
- mysql客户sqlyog_MySQL客户端工具 SQLyog
- 饿了么UI组件库中,Upload组件上传闪动的解决
- 小名的开源项目【EamonVenti】0.0篇 —— 学习如何搭建一个简单的SpringCloud架构,体验微服务的强大!
- 合影效果java_〖摄影技术〗6个姿势,教你拍好合影
- 如何安装Chrome扩展程序或插件
- 2020版影视制作学习路线图(含大纲+视频+工具+书籍+面试)
- 交换机短路_交换机环路发现及处理
- LDAP 中的 RDN
- e480换高分屏_ThinkPadE480电脑(i5-8250u 8G内存 256G固态 高分屏0QCD 14英寸) 京东5699元...
- Mixed-Integer Optimization with Constraint Learning