E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
区间合并+区间更新
线段树详解(单点更新与成段更新\
区间更新
操作)
本文纯属原创,转载请注明出处,谢谢。距离第一次接触线段树已经一年多了,再次参加ACM暑假集训,这一次轮到我们这些老家伙们给学弟学妹们讲解线段树了,所以就自己重新把自己做过的题目看了一遍,然后写篇博客纪念一下。作为一个菜鸟,文中肯定有很多表达不是很准确甚至错误的地方,欢迎各位大牛指正。作为近年来算法竞赛里面最火爆的数据结构考点,它的用法和问法层出不穷。而作为解决反复对区间的更新和查询问题最好的数据结
_ZiP
·
2020-08-18 09:51
数据结构
琐碎的区间(线段树
区间更新
+ 技巧!)
琐碎的区间时间限制:4Sec内存限制:256MB提交:131解决:26[提交][状态][讨论版]题目描述给出一个长度为n的整数序列A[1..n],有三种操作:1lrx:把[l,r]区间的每个数都加上x2lr:把[l,r]区间每个A[i]变为sqrt(a[i])的整数部分3lr:求[l,r]区间所有数的和其中l和r和x都代表一个整数输入第一行一个T,表示数据组数。对于每组数据Line1:两个数nm,
蜗牛蜗牛慢慢爬
·
2020-08-18 09:19
数据结构---线段树
待整理文档
poj 3237 树链剖分(
区间更新
,区间查询)
http://poj.org/problem?id=3237DescriptionYouaregivenatreewithNnodes.Thetree’snodesarenumbered1throughNanditsedgesarenumbered1throughN−1.Eachedgeisassociatedwithaweight.Thenyouaretoexecuteaseriesofinst
life4711
·
2020-08-18 09:06
数据结构
树链剖分
hdu 4747(
区间更新
)
题意:一个长度为n的序列,然后求任意左右区间l,r中没有出现过的最小的数字的和。题解:如果固定区间的左端点得到的所有区间的解是从左到右发现是一个递增序列,用线段树维护当前固定左端点的区间的解的和和最大值,然后更新下一个左端点a[i+1]的区间,那么a[i]就要删除,发现以a[i+1]为左端点的区间所有mex值要把之前第一个mex大于a[i]的位置到下一个a[i]的位置所有值设置为a[i]。举个例子
路小白_zZ
·
2020-08-18 09:03
ACM-线段树
hdu1540 Tunnel Warfare 线段树
区间合并
题意:n个城镇在一条直线上,初始状态相邻的城镇都相邻。有三种操作:(1)Dx摧毁x城镇(2)R修复上次摧毁的城镇(3)Qx查询与x相连的没有被摧毁的城镇。思路:线段树维护2个变量:ls存区间左端向右连续完好城镇的个数,rs存区间右端向左连续玩好城镇的个数。对于D相当于单点更新。对于R需要用个栈存之前摧毁的城镇。对于Q稍微麻烦点。要判断p是否在区间的ls、rs里。如果在,那么需要将另一端的与它相连的
Excelsior_kereo
·
2020-08-18 09:45
线段树
CUGB专题训练之数据结构:B - Count Color 线段树
区间更新
B-CountColorTimeLimit:1000MSMemoryLimit:65536KB64bitIOFormat:%I64d&%I64uSubmitStatusDescriptionChosenProblemSolvingandProgramdesignasanoptionalcourse,youarerequiredtosolveallkindsofproblems.Here,weget
潇洒走一回LW
·
2020-08-18 09:12
HDU 4614(线段树)
成端更新+
区间合并
#pragmacomment(linker,"/STACK:1024000000,1024000000")#include#include#include#include#include
swust_wbh
·
2020-08-18 09:45
ACM算法
线段树
POJ-2528-Mayor's posters(线段树
区间更新
+离散化+正确解法)
ThecitizensofBytetown,AB,couldnotstandthatthecandidatesinthemayoralelectioncampaignhavebeenplacingtheirelectoralpostersatallplacesattheirwhim.Thecitycouncilhasfinallydecidedtobuildanelectoralwallforpl
sugarbliss
·
2020-08-18 09:12
【线段树】
线段树 - 单点更新/查询,
区间更新
/查询
区间更新
,区间求和:#includeusingnamespacestd;#definelllonglong#definelefsl,m,rt>1;#defineabbintl,intr,intrtconstintN
sugarbliss
·
2020-08-18 09:40
Vases and Flowers
想不到怎么用二分,只好照着常规思路来做题意:两种操作:1.从a号花瓶开始插入f朵花,每个花瓶只能有一朵花,且有花的花的花瓶不能被放入2.清除一个区间内花瓶中的花注意花瓶的编号是0~n-1解题思路:这就是两种不同的
区间更新
尉水风
·
2020-08-18 09:03
线段树
hdu 4614 Vases and Flowers
对于操作2,直接应用
区间更新
的懒操作就可以了,而对于操作1,我们可以查询上区间[0,A-1]里有多少有值为0的数
shiqi_614
·
2020-08-18 09:25
线段树及数据结构
线段树
区间更新
【Lazy标记】【模版、详细注释】【再附上标记永久化模版】
我在前面介绍了线段树的点更新,现在讲解一下
区间更新
区间更新
与点更新不同,它需要更深层次的理解,我讲一下最为基本的Add(L,R,V)与Query(L,R)系列,然后以此为基础可以衍射出其他各种做法:例如
Andres_Lionel
·
2020-08-18 09:45
数据结构
线段树
线段树区间更新
CodeForces - 566D(并查集
区间合并
更新优化)
#include#include#include#includeusingnamespacestd;constintmaxn=2e5+10;intpre[maxn];intnex[maxn];intn,q;intfoot1,foot2;inta,b;voidinit(){for(inti=0;i<=n+3;++i){pre[i]=i;nex[i]=i+1;}}intfinds(intx){if(x
圣帝天龙
·
2020-08-18 09:44
并查集
【HDU - 5649】DZY Loves Sorting(线段树,
区间更新
区间查询,思维,01缩数变换,线段树分割)
题干:DZYhasasequencea[1..n]a[1..n].Itisapermutationofintegers1∼n1∼n.Nowhewantstoperformtwotypesofoperations:0lr0lr:Sorta[l..r]a[l..r]inincreasingorder.1lr1lr:Sorta[l..r]a[l..r]indecreasingorder.Afterdoi
韬光养晦_
·
2020-08-18 09:12
HDU
思维
线段树
(
区间更新
开方操作)
一直在想如何用lazy标记,来使
区间更新
不超时间。
哼哼怪
·
2020-08-18 09:39
HDU 4614 Vases and Flowers (二分查找+线段树
区间更新
)
Aliceissopopularthatshecanreceivemanyflowerseveryday.ShehasNvasesnumberedfrom0toN-1.Whenshereceivesomeflowers,shewilltrytoputtheminthevases,oneflowerinonevase.SherandomlychoosethevaseAandtrytoputaflow
i-unique
·
2020-08-18 09:54
ACM
数据结构
线段树
二分
三分
HDU 5029 Relief grain (树链剖分+
区间更新
)
ReliefgrainTimeLimit:10000/5000MS(Java/Others)MemoryLimit:100000/100000K(Java/Others)TotalSubmission(s):3028AcceptedSubmission(s):883ProblemDescriptionThesoiliscrackingupbecauseofthedroughtandtherabbi
Just_JK
·
2020-08-18 09:52
树链剖分
线段树
POJ 3468(线段树区间修改模板题)
poj3468链接题目大意给出两个操作:1:将一个区间里的都数增加c2:查询区间(a,b)内的和总结线段树的区间修改和点修改相比多了一个add数组,add数组的作用是在进行
区间更新
的时候不必将和该区间有关的所有线段都更新
programmy
·
2020-08-18 08:14
模板
线段树
【线段树-
区间更新
】知识点讲解 + 模板题
知识点讲解:博文(https://www.cnblogs.com/TheRoadToTheGold/p/6254255.html)讲得很通俗易懂,copy一下:5、区间修改,即修改一段连续区间的值,我们已给区间[a,b]的每个数都加x为例讲解Ⅰ.引子有人可能就想到了:修改的时候只修改对查询有用的点。对,这就是区间修改的关键思路。为了实现这个,我们引入一个新的状态——懒标记。Ⅱ懒标记(懒标记比较难理
Joseph_L_
·
2020-08-18 08:36
蓝桥杯
专题 线段树 E(
区间更新
,使用lazy标记)
#include#include#include#includeusingnamespacestd;constintMAXN=100010;typedeflonglongLL;intlazy[3*MAXN];//懒惰标记数组intnum[MAXN];structNode{intl,r;LLnSum;}segTree[MAXN*3];voidpushdown(introot,intlen)//len
老铁干了这碗algorithms
·
2020-08-18 08:04
线段树
Hdu 1540
M次操作,操作有以下:1.Dx销毁村庄x2.Qx询问与村庄x相邻的村庄总数3.R最近一次销毁的村庄得到重建【解题思路】一看这个修改和查询就想到了线段树,然后这个题和以前做过的poj的Hotel很像都是
区间合并
just_sort
·
2020-08-18 08:49
ACM/ICPC_HDOJ
线段树
区间更新
+题目
给你N个数,Q个操作,操作有两种,‘Qab’是询问a~b这段数的和,‘Cabc’是把a~b这段数都加上c。需要用到线段树的,update:成段增减,query:区间求和介绍Lazy思想:lazy思想,记录每一个线段树节点的变化值,当这部分线段的一致性被破坏我们就将这个变化值传递给子区间,大大增加了线段树的效率。在此通俗的解释我理解的Lazy意思,比如现在需要对[a,b]区间值进行加c操作,那么就从
jianxingzhang
·
2020-08-18 08:43
编程
CodeForces - 566D 并查集
区间更新
优化
如果type==1,则将a和b并在一个集合;如果type==2则将a~b个人并在一个集合;如果type==3,若a和b在一个集合则输出YES,反之输出NO操作2:并查集
区间合并
优化。
CoderCat.
·
2020-08-18 08:10
并查集
线段树
区间更新
#includeusingnamespacestd;intn,tre[10003*4],intlaz[10003*4];voidpushdown(intnum){if(laz[num]!=0){tre[num*2]+=laz[num];tre[num*2+1]+=laz[num];laz[num*2]+=laz[num];laz[num*2+1]+=laz[num];laz[num]=0;}}vo
cj1064789374
·
2020-08-18 08:20
ACM笔记-5代数
HDU 1540 Tunnel Warfare
题目分析本题为线段树
区间合并
,因为必须更新到叶子节点,所以不需要设置延迟标记,直接更新到叶子节点就可以了。
TouchDreamer
·
2020-08-18 08:43
ACM_HDU
数据结构_线段树
HDU1698(线段树+区间覆盖+lazytag)
解题思路:线段树的裸题,
区间更新
区间查询,在打标记的时候直接赋值就行。
小胡同的诗
·
2020-08-18 08:11
线段树
HDU1698 线段树
区间更新
题意:
区间更新
及求和。思路:模板题。
acunstoppable
·
2020-08-18 08:43
----数据结构----
线段树
NEFU 1266 (线段树
区间更新
)
快乐的雨季Problem:1266TimeLimit:5000msMemoryLimit:65535KDescription 六月到来,长江流域进入了雨季,在长江流域有一个小镇,这个小镇上的百姓都住在一条直线上,共有n户人家,编号为1~n,在直线上按编号依次坐落。进入雨季来,这个小镇共下了q次雨,每次下雨覆盖范围是一个连续的区间(L,R),表示编号为L至R的家庭位于降雨区,降雨量为x。镇长非常关心
Timeclimber
·
2020-08-18 08:45
线段树
【CodeForces-566D】Restructuring Company(并查集
区间合并
)
Eventhemostsuccessfulcompanycangothroughacrisisperiodwhenyouhavetomakeaharddecision—torestructure,discardandmergedepartments,fireemployeesanddootherunpleasantstuff.Let'sconsiderthefollowingmodelofacom
bfcx
·
2020-08-18 08:02
牛客205089 牛妹的苹果树
需要发现一个性质,就是两个连续
区间合并
的时候,合并后的区间的直径的端点是合并前的四个端点中的两个。通过枚举确定是哪两个。
敲代码的欧文
·
2020-08-18 08:09
#
倍增
hdu 4614 Vases and Flowers(线段树
区间更新
+二分)
区间更新
,区间求和,这些基本的操作线段树都可以O(log(n))的时间范围内完成。操作2,很显然就是线段树的区间求和,求出[
HelloWorld10086
·
2020-08-18 07:04
线段树
2013-2014 ACM-ICPC Brazil Subregional Programming Contest
不知不觉又欠了好多好多题目没有补…因为第一次弄弄成了mashup就️题目链接了A签到B最初考虑的时候认为可以先排序(比如按照y轴高度),然后按照从高到低的顺序用线段树进行
区间更新
、单点查询…后来发现排序出大问题
rqdmap
·
2020-08-18 07:04
ACM
Vases and Flowers HDU - 4614(线段树
区间更新
)
Aliceissopopularthatshecanreceivemanyflowerseveryday.ShehasNvasesnumberedfrom0toN-1.Whenshereceivesomeflowers,shewilltrytoputtheminthevases,oneflowerinonevase.SherandomlychoosethevaseAandtrytoputaflow
浮生一朝
·
2020-08-18 07:00
线段树
线段树模板(单点更新,
区间更新
,RMQ)
Bryce1010模板https://blog.csdn.net/Fire_to_cheat_/article/details/784246961.单点更新说明单点更新,区间求和(你问我单点求和??你就不会把区间长度设为0啊?)•sum[]为线段树,需要开辟四倍的元素数量的空间。•build()为建树操作•update()为更新操作•query()为查询操作时间复杂度:O(nlogn)使用方法bu
bryce1010
·
2020-08-18 07:59
【ACM之路Bryce模板】
HDU 4027(线段树
区间更新
+区间求和)-Can you answer these queries?
题目:Alotofbattleshipsofevilarearrangedinalinebeforethebattle.Ourcommanderdecidestouseoursecretweapontoeliminatethebattleships.Eachofthebattleshipscanbemarkedavalueofendurance.Foreveryattackofoursecretw
古城白衣少年i
·
2020-08-18 07:02
线段树
hdu4027 线段树(区间开平方,区间求和)
本题的线段树
区间更新
不能用
区间更新
做,因为不满足:区间和的更新==区间内每个数更新的和所以实际上是单点更新,单点更新不是退化成On2了吗?
weixin_33809981
·
2020-08-18 07:28
hdu1540(线段树
区间合并
)
这题是个很恶心的题,
区间合并
是比较裸的。
爱生活的程序猿
·
2020-08-18 07:54
线段树
数据结构
hdu 4614(
区间更新
)
这里写代码片题意:有n个花瓶编号从0到n-1,初始花瓶都是空的,然后有两个操作,1ab表示从位置a开始往后面找b(不够b个也可以)个空花瓶插花,输出插花的首位置和末位置,2ab表示输出区间[a,b]有多少个花,并且把这个区间内所有花都拿走。题解:很容易想到用线段树维护区间内有多少个空花瓶,然后操作2可以直接用普通的区间查询和区间修改,操作1可以看作先查询前a-1个花瓶有num个是空的,然后查询第n
路小白_zZ
·
2020-08-18 07:53
ACM-线段树
hdu4614 线段树
区间更新
很恶心的区间查询更新题目。两个操作,一个是向给定的l向后插入k个元素,输出插入的起始点和结束点;一个是将l和r之间的部分清0,输出清0个数。这里更新的操作很好完成,查询的就比较恶心了,写了三个查询函数,分别查询从l开始第一个空的位置,从l开始第k个空的位置,以及查询区间有多少被占用的位置。第一个查询很好完成,先序遍历加上记录区间有多少可用点,找到第一个可用的就可以返回了。第二个比较恶心,有可能存在
查尔斯欢
·
2020-08-18 07:52
线段树
线段树的区间操作(
区间更新
,区间查询)
区间操作structnode{intl,r,sum,lazy;}tr[maxn>1;build(m>1;//中间值if(rmid)updata(m>1;inttemp;if(rmid)temp=query(m<<1|1,l,r);//遍历右半边elsetemp=query(m<<1,l,mid)+query(m<<1|1,mid+1,r);//遍历(l,mid),(mid+1,r)returnte
qdu_zhaiH
·
2020-08-18 07:15
日常刷题
HDU 4614 Vases and Flowers (2013多校第二场线段树)
区间更新
,区间求
paradiserparadiser
·
2020-08-18 07:31
数据结构
HDU 4614 (13年多校第二场1004)裸线段树
区间更新
,区间求和,这些基本的操作线段树都可以logN的时间范围内完成。操作2,很显然就是线段树的区间求和,求出[a,b]范围内的花朵的数量,
kdqzzxxcc
·
2020-08-18 07:53
数据结构
HDU3577【线段树+
区间更新
+最值查询】
FastArrangementProblemDescriptionChinesealwayshavetherailwayticketsproblembecauseofits’hugeamountofpassangersandstations.Nowgovermentneedyoutodevelopanewticketsquerysystem.Onetraincanjusttakekpassange
安静de想着网名
·
2020-08-18 07:52
解题报告
数据结构题
Algorithm
Data
structure
hdu 4614
区间更新
,区间求和,这些基本的操作线段树都可以logN的时间范围内完成。操作2,很显然就是线段树的区间求和,求出[a,b]范围内的花朵的数量,
发奋屠强
·
2020-08-18 07:30
线段树
HDU 4614 线段树(
区间更新
)+二分
题意有0-N-1个花瓶,两种操作。一种操作是从某个点开始,放F朵花,如果一朵花都不能放,则输出“Cannotputanyone.”,否则输出放花的区间。另一种操作是清理A到B区间内的所有花,输出清理的数量。题解感觉这道题还是有一些难度的,主要是要对题意有着比较深刻的理解。题目最坑的地方在于,可以放0朵花。更坑的是,放0朵花的话,比如在X点放0朵花,那么X点就会变成没有花的点。。。因此更新的时候,0
zhenlingcn
·
2020-08-18 07:58
ACM数据结构问题
hdu 1540
题目以前一直以为线段树
区间合并
是什么新奇的玩意,原来以前做过的区间最大子序列和就是
区间合并
的一种,都是毒瘤题……#include#include#include#include#include#include
a10.
·
2020-08-18 07:52
线段树
dp的进阶 (一)
生命值转移时候需要注意的②集合的定义,判断二进制内部是否有环③很难想到的背包问题④博弈类型的dp⑤排列组合类型dp⑥01背包的变种(01背包+完全背包)⑦codeforcesGoodbye2016E线段树维护dp
区间合并
weixin_34344403
·
2020-08-18 05:10
hdu5239线段树
区间更新
,区间平方,取模
DoomTimeLimit:12000/6000MS(Java/Others)MemoryLimit:524288/524288K(Java/Others)TotalSubmission(s):2137AcceptedSubmission(s):559ProblemDescriptionTHEENDISCOMINGGGGGG!Mikehasgotstuckonamysterymachine.Ifh
sdauguanweihong
·
2020-08-18 02:17
线段树
Educational Codeforces Round 89(A-C) A数学, B
区间更新
, c贪心。(19退役场,以后慢慢做吧,欲速则不达(速度的提升还是要靠经验的积累和码速))
A.ShovelsandSwords题意:给你stick(棍)和diamonds的个数。要你转换成shovel(铁铲)或swords。(shovel需要2*stick1*diamond。sword需要1*stick2*diamond)要你把他们卖掉,卖掉shovel和swords都可以得到1*emerald(绿宝石)题目给你stick和diamond数,问你最多有多少个绿宝石。思路:其实就是2,1
scau_sleep(今天写bug了吗?
·
2020-08-18 02:42
贪心&&暴力
cf菜鸡的失恋(试炼)
codeforces 438D The Child and Sequence(线段树:单点更新+区间取模+区间和)
(1 ≤ n, m ≤ 1e5).(1 ≤ a[i] ≤ 1e9)分析:看到
区间更新
,应该想到懒惰标记。但是用懒惰标记应该满足两个条件:标记可以合并可以快速更新区间信息。
nbl97
·
2020-08-18 00:35
线段树
上一页
4
5
6
7
8
9
10
11
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他