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
-----线段树
线段树
初步(单点修改,区间查询)
线段树
介绍:
线段树
是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应
线段树
中的一个叶结点。
run with sunshine
·
2020-08-08 20:07
树
【BZOJ5294】【BJOI2018】二进制
分别用
线段树
统计上述区间个数即可。时间复杂度\(O(QLogN)\)。
cz_xuyixuan
·
2020-08-08 20:53
【OJ】BZOJ
【类型】做题记录
【数据结构】线段树
线段树
合并:从入门到放弃
需要掌握的前置知识点:动态开点
线段树
、权值
线段树
。一、合并思想
线段树
合并,就是指建立一颗新的
线段树
,保存原有的两颗
线段树
的信息。
UnicornXi
·
2020-08-08 20:48
数据结构
bzoj 4034 (dfs序+
线段树
题目链接///.-~~~~~~~~~-.__.-~~~~~~~~~-.///__.'~..~`.__///.'//\./\\`.///.'//|\\`.///.'//.-~"""""""~~~~-._|_,-~~~~"""""""~-.\\`.///.'//.-"`-.|.-'"-.\\`.///.'//______.============-..\|/..-============.______
twh233
·
2020-08-08 19:17
dfs序
线段树
基本操作C++
转载于:百度百科支持以下操作1x若x不存在,插入x2x若x存在,删除x3输出当前最小值,若不存在输出-14输出当前最大值,若不存在输出-15x输出x的前驱,若不存在输出-16x输出x的后继,若不存在输出-17x若x存在,输出1,否则输出-1#include#include#include#include#include#include#include#include#include#include
Joe_2005
·
2020-08-08 19:07
数据结构
bzoj4530[Bjoi2014]大融合
线段树
合并+dfs序+并查集
题意比较明显就不说了。这题我思考了一会儿,由于题解并不说清楚为什么这样处理的原因,我想了很久才想通==。建议看完理解题解以后不要看标,自己独立打出来,这题的思路很妙~。。首先很容易知道先把原树建出来以后,答案就是(size(fa)-size(x))*size(x)那么问题是怎么样处理询问呢,当然你可以树剖暴力搞,因为我一开始也是这么想的,这里提供一种更优美的解法==我们把树建出来以后,在图上建一颗
Transcendence_magia
·
2020-08-08 19:21
bzoj
线段树合并
并查集
dfs序
UOJ#395. 【NOI2018】你的名字(SAM)
传送门题解:
线段树
维护fail树,然后t串暴力在s串fail树上跳,对每个后缀求出重合最多的一部分,然后自己再求一次即可。时间复杂度O(nlogn)O(n\logn)O(nlogn)。
DZYO
·
2020-08-08 19:15
后缀自动机
差分数组概述
今天做了bzoj1635后发现各路神犇都用差分数组,本蒟却傻傻写了
线段树
。。。。。
lethalboy
·
2020-08-08 19:15
其他
Bzoj2819:Nim:树链剖分
题目链接:Nim
线段树
维护异或值的沙茶题然而dfs会爆栈所以得开手工栈(见代码)#include#include#include#includeusingnamespacestd;constintmaxn
TheWolfWhistlingSong
·
2020-08-08 19:32
OI
树链剖分
bzoj 3306: 树 dfs序+
线段树
题意给定一棵大小为n的有根点权树,支持以下操作:换根修改点权查询子树最小值n,q#include#include#include#includeusingnamespacestd;constintN=100005;intn,m,dep[N],dfn[N],b[N],tim,a[N],fa[N][20],last[N],cnt,mn[N],mx[N];structedge{intto,next;}e
SFN1036
·
2020-08-08 19:11
线段树
「BJOI2018」链上二次求和
线段树
题意有一个长度为n的序列a和m个操作,每个操作形如操作1(修改):给定链上两个节点u、v和一个整数d,表示将链上u到v唯一的简单路径上每个点权值都加上d。操作2(询问):给定两个正整数L、r,表示求链上所有节点个数大于等于L且小于等于r的简单路径节点权值和之和。n≤200000,m≤500000n≤200000,m≤500000分析我们设SiSi表示前缀和,SSiSSi表示前缀和的前缀和,那么要求
SFN1036
·
2020-08-08 19:11
线段树
【Codeforces 1148H Holy Diver】【可持久化
线段树
】
题意有nnn次操作和一个空序列,每次操作在序列末尾增加一个数,并询问区间[l,r][l,r][l,r]中有多少个子区间满足其mexmexmex等于kkk。强制在线。n≤200000n\le200000n≤200000分析从小到大枚举右端点rrr,对于每个左端点lll,维护mex(al,⋯ ,ar)mex(a_l,\cdots,a_r)mex(al,⋯,ar)的值。mex(al,⋯ ,ar)mex(
SFN1036
·
2020-08-08 19:10
可持久化线段树
洛谷4556:雨天的尾巴(
线段树
合并)
题面路径(u,v)修改根据套路可以变成u、v处+1,lca(u,v)处-1单点查询变为子树查询然后搜题解发现可以每个点开以颜色为权值的权值
线段树
统计子树信息就是
线段树
合并根据某种理论叶子结点个数一定时复杂度就是一个
KKiseki
·
2020-08-08 18:21
线段树
Hello the world,你好oi
DP,数论,
线段树
,搜索,后缀数组,计
KKiseki
·
2020-08-08 18:21
心情
洛谷:P4364 [九省联考2018]IIIDX(
线段树
)
题面求出每个子树的siz数由大到小排靠谱的策略大概是第i个节点选排名为siz[i]siz[i]的数的与之相等的排名最大的那个然后为它的子树预留足够的点但是不知道要预留那些点据题解,可以对于每个点维护该点的前缀有几个可以选,记为c[i]c[i]对于点x,找到最小的ii使得所有的j>ij>i满足c[j]≥siz[x]c[j]≥siz[x],再找与之相等的排名最大的那个。由于预留的都比它大,故对于所有的
KKiseki
·
2020-08-08 18:21
线段树
详解
线段树
及C语言代码(包含lazy操作)
线段树
并不是存线段的树,而是存一个区间及其子区间重要值的树,那些
线段树
的图片上面的线段实际上是表示的存储的哪一段区间的重要值。
nine_mink
·
2020-08-08 18:50
LCT 讲解 动态树的基本使用
树链剖分是对树进行轻重链剖分,重链的条数不超过logn条,用
线段树
维护链上信息。
magic_sheep
·
2020-08-08 18:09
动态树
可持久化
线段树
简介
可持久化
线段树
,听起来像
线段树
的升级版。但是这个东西有什么用呢?
lyd729
·
2020-08-08 17:53
可持久化数据结构
[NOI2016]优秀的拆分 后缀自动机 树上启发式合并
线段树
[NOI2016]优秀的拆分题目传送门luogubzoj分析这道题不管采用Hash,后缀数组还是自动机,网上大部分的题解都采用了关键点+调和级数这个操作。本蒟蒻想不到关键点这个操作,所以采用的是一种较为繁琐的O(nlog2)O(nlog^2)O(nlog2)做法。首先肯定将问题转化成对于每个iii求以iii为边界的AAAAAA结构个数,当然前缀后缀分别求一遍,以下默认是前缀。考虑形式化这个问题,对
lvzelong2014
·
2020-08-08 17:38
数据结构-线段树&&树状数组
分治技巧在高级数据结构中的应用——
线段树
分治(二)&&bzoj4137火星商店问题详解
分治技巧在高级数据结构中的应用——
线段树
分治(二)从一道神题说起4137:[FJOI2015]火星商店问题TimeLimit:20SecMemoryLimit:256MBSubmit:210Solved
lvzelong2014
·
2020-08-08 17:06
分治结构-线段树分治
数据结构-可持久化Trie树
【CF1045A】A Last chance【贪心】【
线段树
优化建图】【网络流构造方案】
题意:有nnn个武器和mmm个飞船,武器有下面三种从给定的集合SSS中击破一个。在给定的区间[L,R][L,R][L,R]中击破一个。对于给定的a,b,ca,b,ca,b,c,选择000个或222个击破。特殊地,每个飞船最多被该操作的a,b,ca,b,ca,b,c指定一次。求最多能击破的飞船数量,并输出一种方案。n,m≤5×103,∑∣S∣≤105n,m\leq5\times10^3,\sum|S
Lstdo
·
2020-08-08 17:28
【NOI2019】弹跳【二维
线段树
】【dijkstra】
题意:一个w×hw\timeshw×h的二维平面上有nnn个城市,有mmm个弹跳装置,第iii个可以花费tit_iti的时间从城市pip_ipi跳到矩形x∈[l,r],y∈[u,d]x\in[l,r],y\in[u,d]x∈[l,r],y∈[u,d]中的任意一个城市。求从111到其他每个城市的最小时间。w,h≤n≤7×104,m≤1.5×105w,h\leqn\leq7\times10^4,m\l
Lstdo
·
2020-08-08 17:27
线段树
入门总结
树结构的基本思想是分割,普通二叉搜索树是按照数据来划分(想了解二叉搜索树的请移步:Here),
线段树
处理的对象是线段(区间也可以看成线段,L==R时为一个点),它把线段组织成有利于检索和统计的形式,它的本质是线段的二叉搜索树
Enstein_Jun
·
2020-08-08 17:26
树
[LOJ2720] 「NOI2018」你的名字(后缀自动机+
线段树
合并)
题意给你一个字符串S\rmSS,q\rmqq次询问一个区间[l,r]\rm[l,r][l,r],与一个字符串T\rmTT,求T\rmTT有多少个本质不同的子串没在S[l,r]\rmS[l,r]S[l,r]中出现过。首先求的东西可以转化成T\rmTT中本质不同的子串减去S[l,r]\rmS[l,r]S[l,r]与T\rmTT的本质不同的公共子串数,T\rmTT中本质不同的子串用SAM很好求,那么现在
lunch__
·
2020-08-08 17:52
NOIP2016 天天爱跑步
线段树
合并_桶_思维题
NOIP2016天天爱跑步
线段树
合并_桶_思维题竟然独自想出来了,好开心Code:#include#definesetIO(s)freopen(s".in","r",stdin)#definemaxn400000
EM-LGH
·
2020-08-08 17:01
BZOJ 4551 树 dfs序+
线段树
/ 并查集
法一:dfs序+
线段树
分析类似于区间修改,单点查询,因为给某个结点打上标记会对它的整棵子树产生影响。修改的注意点是只有当前修改的情况优于当前标记的情
kkkkahlua
·
2020-08-08 17:11
dfs
并查集
BZOJ
线段树
树
Luogu P1501 [国家集训队]Tree II (LCT lazy 标记)
思路:和
线段树
2很像.主要练习LCT的lazy标记.我在写这个题的时候,没有看c的取值可以是0,结果就调了一上午,emmmmif(mul[x]!
Top_xiao
·
2020-08-08 16:34
#
LCT
bzoj 2049: [Sdoi2008]Cave 洞穴勘测 (时间分治+带撤销并查集)
时间分治的话就是以操作序号为时间,对应对一颗
线段树
上去,然后在
线段树
上分治找到操作时间对应的节点,进行操作。
johsnows
·
2020-08-08 16:23
acm
studyproblem
时间分治
数据结构
并查集
线段树
【XSY1551】往事 广义后缀数组
线段树
合并
题目大意给你一颗trie树,令sisi为点ii到根的路径上的字符组成的字符串。求maxu≠v(LCP(su,sv)+LCS(su,sv))maxu≠v(LCP(su,sv)+LCS(su,sv))LCP=LCP=最长公共前缀,LCS=LCS=最长公共后缀1≤n≤2000001≤n≤200000,字符集为{0…300}{0…300}题解我们先看看这个LCP(su,sv)LCP(su,sv)怎么求广义
ez_yww
·
2020-08-08 15:16
字符串--后缀数组
数据结构--线段树合并
数据结构
字符串
数据结构--线段树
BZOJ 4719: [Noip2016]天天爱跑步
线段树
合并
titleBZOJ4719LUOGU1600简化题意:小c同学认为跑步非常有趣,于是决定制作一款叫做《天天爱跑步》的游戏。《天天爱跑步》是一个养成类游戏,需要玩家每天按时上线,完成打卡任务。这个游戏的地图可以看作一一棵包含\(n\)个结点和\(n-1\)条边的树,每条边连接两个结点,且任意两个结点存在一条路径互相可达。树上结点编号为从\(1\)到\(n\)的连续正整数。现在有\(m\)个玩家,第\
dilu0653
·
2020-08-08 15:55
NOIP2016 天天爱跑步
线段树
合并
(题面太毒瘤建议自己去题库食用)分析:记得当初做这道题的时候,又差分又倍增还开桶,十分毒瘤,后来学到了
线段树
合并,又看到了这道题,所以就写了这篇解题报告。
daxian3723
·
2020-08-08 15:20
【BZOJ】5417: [Noi2018]你的名字 -后缀自动机&
线段树
可持久化合并
传送门:bzoj5417题解首先还是那句话,要清楚后缀自动机的本质(后缀自动机详解)。对SSS建一个后缀自动机,每次对TTT同样建一个后缀自动机。考虑l=1,r=∣S∣l=1,r=|S|l=1,r=∣S∣的情况:设limilim_ilimi表示字符串TTT区间[1,i][1,i][1,i]所能匹配SSS的最长后缀[i−limi+1,i](limi>0)[i-lim_i+1,i](lim_i&
ccosi
·
2020-08-08 14:22
后缀自动机
线段树可持久化合并
线段树
入门
定义
线段树
是一种二叉搜索树,擅长于处理区间,每个节点都代表了一段区间,故名
线段树
.复杂度空间复杂度:在2n~4n之间(4n是因为递归结束时可能是在n*2再乘2,如果不开可能会下标越界),具有不确定性,一般开
caoyang1123
·
2020-08-08 14:29
训练集
BZOJ 4043 [HAOI2015]树上操作 dfs序
线段树
$\Rightarrow$戳我进BZOJ原题$\Rightarrow$戳我进洛谷原题[HAOI2015]树上操作TimeLimit:10SecMemoryLimit:256MBDescription有一棵点数为$N$的树,以点$1$为根,且树点有边权。然后有$M$个操作,分为三种:操作$1$:把某个节点$x$的点权增加$a$。操作$2$:把某个节点$x$为根的子树中所有点的点权都增加$a$。操作$
ayf1988
·
2020-08-08 14:08
BZOJ4527: K-D-Sequence【
线段树
+单调栈】
4527:K-D-SequenceDescription我们称一个数列为一个好的k-d数列,当且仅当我们在其中加上最多k个数之后,数列排序后为一个公差为d的等差数列。你手上有一个由n个整数组成的数列a。你的任务是找到它的最长连续子串,使得满足子串为好的k-d数列。Input第一行包含三个用空格隔开的整数n,k,d(1≤n≤2∗105;0≤k≤2∗105;0≤d≤109)n,k,d(1\len\le
aiweiluan5095
·
2020-08-08 14:14
数据结构与算法
BJOI2014 大融合 并查集+
线段树
合并
大融合Description小强要在N个孤立的星球上建立起一套通信系统。这套通信系统就是连接N个点的一个树。这个树的边是一条一条添加上去的。在某个时刻,一条边的负载就是它所在的当前能够联通的树上路过它的简单路径的数量。例如,在上图中,现在一共有了5条边。其中,(3,8)这条边的负载是6,因为有六条简单路径2-3-8,2-3-8-7,3-8,3-8-7,4-3-8,4-3-8-7路过了边(3,8)。
DoBelieve
·
2020-08-08 13:55
并查集
线段树合并
[BZOJ3998]TJOI2015弦论|后缀自动机
如果能求出f[i]表示以root走到状态i的路径为开头往后能得到的串的数量,我们就可以像
线段树
那样的查询了(26分?)。。
Tag_king
·
2020-08-08 13:31
BZOJ
bzoj4530: [Bjoi2014]大融合 //
线段树
分治+并查集
bzoj4530:[Bjoi2014]大融合题意N#defineN100005#defineV2000006usingnamespacestd;typedeflonglongll;structedge{intu,v;}e[N];mapmp;map::iteratorit;intn,q,tmp,lst[N],qnum[N],cct,cnt,tot,to[V],hd[V],lk[Nrr)return;
Starria
·
2020-08-08 13:42
线段树分治
并查集
BZOJ 4034 HAOI2015 T2 DFS序+
线段树
a2.某棵子树所有点权+a3.查询某个点到根路径上的点权和这个用入栈出栈序就可以了入栈为正,出栈为负,那么一个点到根路径上的权值和就是入栈出栈序中[1,入栈位置]的和而子树在入栈出栈序中是连续的,因此用
线段树
维护一下就可以了
PoPoQQQ
·
2020-08-08 13:18
线段树
DFS序
BZOJ
agc011_f Train Service Planning (数学分析 取模技巧
线段树
优化DP)
这题好难啊!!!有一篇博客已经写得很详细也很清晰了,安利一下:传送门我再加几句,是我自己理解过程中遇到的困难:(1)逆行的车用(N−S(a,i−1)−S(q,i),N−S(a,i)−S(q,i))表示,为什么N可以调整为K的倍数。解释:因为所有火车同时推迟t个单位时间本质上和原来一样,所以我们可以通过推迟的方法让N变为K的倍数。(2)为什么最后答案不是S(p,n)+S(q,n)+2*S(a,n),
Bubble_age
·
2020-08-08 13:08
AGC好题(思维题)
BZOJ 3252攻略 dfs序+
线段树
BZOJ3252攻略dfs序+
线段树
题目链接:右转进入题目题目大意:给定一棵以1为根的n个点的树,树有点权且点权为正整数,可以选择k条以根作为起点的路径,每条路径的价值即这条路径上所有点的点权之和。
Mys_C_K
·
2020-08-08 13:19
线段树
BZOJ
【LuoguP4719】动态DP模板-树链剖分+
线段树
+矩阵乘法
测试地址:动态DP做法:本题需要用到树链剖分+
线段树
+矩阵乘法维护动态DP。动态DP这个东西以前听过,但当时没有看懂,现在想来觉得是卡在矩阵乘法这个地方。这里用的不是传统的矩阵乘法。
Maxwei_wzj
·
2020-08-08 12:55
数据结构-线段树
算法-树链剖分
数学-线性代数
数据结构与算法——AVL树简介
▪Bx树▪UB树▪2-3树▪2-3-4树▪(a,b)-树▪Dancingtree▪H树Trie▪前缀树▪后缀树▪基数树空间划分树▪四叉树▪八叉树▪k-d树▪vp-树▪R树▪R*树▪R+树▪X树▪M树▪
线段树
readyao
·
2020-08-08 12:34
每日一题
数据结构与算法
bzoj 4034: [HAOI2015]树上操作(
线段树
+dfs序)
用dfs序进栈+1出栈-1+
线段树
区间修改,查询维护PS:
线段树
又写挂了,调试了很久啊~~#include#include#include#include#include#definefo(i,a,b)
Lifel
·
2020-08-08 12:30
线段树
dfs序
bzoj
bzoj4551 [Tjoi2016&Heoi2016]树(dfs序+
线段树
)
我们发现标记一个点只会影响他的子树的答案,用dfs序转化为区间覆盖即可,深度越深越接近。还可以lct。#include#include#include#includeusingnamespacestd;#definelllonglong#defineinf0x3f3f3f3f#defineN100010inlineintread(){intx=0,f=1;charch=getchar();whil
Icefox_zhx
·
2020-08-08 12:39
bzoj
线段树
-----树-------
SPOJ 16580 QTREE7 - Query on a tree VII
我还是想说,这貌似链分治总是可以搞定的,如果不行,就加一个
线段树
,如果还是不行,就加一个堆。
Fuxey
·
2020-08-08 12:35
树的分治
Codeforces 827A/828C String Reconstruction[
线段树
单点更新]
题意:给了你n个字符串,然后说明这个字符串在什么位置出现了,然后让你输出字典序最小的答案.分析:1.首先是答案的长度,根据字典序的定义,长度取,给定的n个字符串出现的最大的(位置+len(i)-1);2.如何把给定的字符串更新上去,因为题目保证没有矛盾,所以更新过的点就不用再更新了,这样我们用一个vis数组,表示当前区间是否已经完全更新完,如果更新完了就不管了,没更新完继续单点更新就行了。3.还有
C_z_Q
·
2020-08-08 12:46
Codeforces
BZOJ 2819 DFS序+
线段树
非递归的DFS写炸了…交了一个递归版的过了………..//BySiriusRen#include#include#includeusingnamespacestd;constintN=1000050;intn,nn,q,xx,yy,stk[N],in[N],out[N],top,cnt,tree[N*4];intfirst[N],next[N],v[N],tot,num[N],vis[N],fa[N
weixin_33766168
·
2020-08-08 11:17
线段树
入门(c++)(≧∇≦)ノ
线段树
入门(代码方面采用C++)---出自南昌理工学院ACM集训队
线段树
概念
线段树
应用图例
线段树
各类操作1.建树2.修改特点区间的值3.
线段树
经典操作(求和)例题懒标记对比一下加了懒标记前后的测试点信息最后附上例题
Jiu_ShuLQ
·
2020-08-08 11:28
数据结构
算法
BZOJ4530: [Bjoi2014]大融合(LCT维护子树,
线段树
合并)
传送门题意:给一个动态树,维护sze集合大小。题解:动态树。LCT维护子树和的方法(不支持子树修改,其实实现起来也挺简单的):对于维护这一类满足加减的信息,可以考虑在LCT的每个点分别维护出所有虚边和实边连向他和。如果得到了维护,那么可以轻松在O(logn)时间内完成询问。考虑怎么维护:首先Splay不会改变虚边的性质,那么Splay中直接动态调整实边的和就好了。对于Access操作,显然断开右儿
DZYO
·
2020-08-08 11:20
动态树
线段树
上一页
70
71
72
73
74
75
76
77
下一页
按字母分类:
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
其他