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
线段树合并
CF547E Mike and Friends
题面英文题面题解:由于要统计字符串在某一串中的出现情况,不难想到用
线段树合并
。对所有串建立广义SAM,然后拓扑排序,沿着link边向上合并即可。
Purple_wzy
·
2020-01-14 07:00
3722. 【CF403E】Two Rooted Trees
由于直接树套树空间会被卡,所以在预处理的时候用可持久化
线段树合并
的方式来进行,空间复杂度是\(O(n\lgn)\)的。修改的时候直接将与某条边所有相关的信息抹掉,于是就可以暴力改。时间是\(
jz_597
·
2020-01-07 15:00
CF666E Forensic Examination(广义后缀自动机+
线段树合并
)
题解时间SAM的毒瘤题,无论是倍增来满足长度限制,
线段树合并
来求区间询问,应有尽有。。。对于$T$串建广义SAM,之后考虑如何使得$S$在SAM上匹配时求出$S$在每个$T$的出现次数。很明显
rkk_理希
·
2019-12-22 11:00
待学
转自hzwer:1.1基本数据结构数组链表,双向链表队列,单调队列,双端队列栈,单调栈1.2中级数据结构堆并查集与带权并查集hash表自然溢出双hash1.3高级数据结构树状数组线段树,
线段树合并
平衡树
redegg
·
2019-12-11 19:00
LuoguP3521 [POI2011]ROT-Tree Rotations
题目链接题解考虑对于一个子树有三种可能的逆序对:1.在左子树中2.在右子树中3.跨过左右子树显然对于交换左右子树的操作,只有第3种会受影响,且只有当前这个节点有关所以对每个子树开个权值线段树即可,可以用
线段树合并
实现
wlzs1432
·
2019-12-11 18:00
PKUWC/SC 做题笔记
「PKUWC2018」MinimaxDone2019.12.049:38:55
线段树合并
船新玩法???
ATS_nantf
·
2019-12-03 21:00
acm模板总结
01TrieManacher字符串哈希2019上海网络赛G题17SA(后缀数组)最大不重叠相似子串求两个字符串长度不小于k的公共子串的个数SAM(后缀自动机)洛谷p3975求字典序第K小串动态求出现至少k次本质不同子串个数
线段树合并
StarHai
·
2019-11-27 15:00
P4556 [Vani有约会]雨天的尾巴 (
线段树合并
)
题解:树链剖分的写法很明显了,维护一个max即可讲一下
线段树合并
的写法区间更新用单点更新和差分来代替,求一个L
buerdepepeqi
·
2019-10-11 20:00
P3521 [POI2011]ROT-Tree Rotations (
线段树合并
)
P3521[POI2011]ROT-TreeRotations题意:给你一颗树,只有叶子节点有权值,你可以交换一个点的左右子树,问你最小的逆序对数题解:线段树维护权值个个数即可然后左右子树合并时计算交换和不交换的贡献取一个min即可代码:/***┏┓┏┓*┏┛┗━━━━━━━┛┗━━━┓*┃┃*┃━┃*┃><┃*┃┃*┃...⌒...┃*┃┃*┗━┓┏━┛*┃┃Codeisfarawayfromb
buerdepepeqi
·
2019-10-11 20:00
Lomsat gelral (
线段树合并
)
codeforces.com/contest/600/problem/E题意:给你一颗n个节点的树,树上的每一个节点都有一种颜色,询问每一个节点所在的子树颜色数量最多的那些颜色的值的总和题解:维护子树颜色的数量和答案,
线段树合并
即可代码
buerdepepeqi
·
2019-10-11 20:00
线段树合并
的一些题
线段树合并
的一些题codeforces600EE.Lomsatgelral传送门:https://codeforces.com/contest/600/problem/E题意:给你一颗n个节点的树,树上的每一个节点都有一种颜色
buerdepepeqi
·
2019-10-11 20:00
数据结构训练之一
权值
线段树合并
,并查集维护,动态开点保证空间复杂度;清晰明了的代码code:#include#includeusingnamespacestd;constintmaxn=1e5+5,maxseg=maxn
wzx_believer
·
2019-10-10 09:00
19.10.01 acm E:Lowest Common Ancestor
,然后进行
线段树合并
即可具体地话就是考虑合并到$x,y$两个
xjqxjq
·
2019-10-04 23:00
[CSP-S模拟测试47]反思+题解
然而
线段树合并
早忘干净了(最近几道可以
线段树合并
的题都是用别的方法做的QAQ)。yy了半天尝试码了一下发现完美爆炸,内心慌的一批,不停在想这水题现在得有多少多少人切了。
Rorschach_XR
·
2019-09-21 17:00
P4556 [Vani有约会]雨天的尾巴
传送门这一题真是什么做法都有啊...首先看完题目就知道要离线,然后树上差分十分显然所以现在的问题就是求每个节点子树内出现最多的颜色这个显然可以每个节点维护一个动态开点权值线段树然后通过儿子节点
线段树合并
得到当前节点的答案这个时间复杂度经过分析是
LLTYYC
·
2019-09-19 17:00
线段树合并
,分裂和分治
先说
线段树合并
如果你会写主席树或者平时使用结构题那种线段树,那么理解起来就毫无压力。
Roll_Keyboard
·
2019-09-18 14:17
『树上差分·
线段树合并
』「NOIP2016」天天爱跑步
Problem\mathrm{Problem}ProblemSolution\mathrm{Solution}Solution我们对于任意路线[s,t][s,t][s,t]来说,可以分为[s,Lca(s,t)][s,\mathrm{Lca}(s,t)][s,Lca(s,t)]和(Lca(s,t),t](\mathrm{Lca}(s,t),t](Lca(s,t),t]两部分。对于xxx属于第一部分,
pigzhouyb
·
2019-09-16 12:27
线段树
树上差分
『树上差分·
线段树合并
』雨天的尾巴
Problem\mathrm{Problem}ProblemN个点,形成一个树状结构。有M次发放,每次选择两个点x,y对于x到y的路径上(含x,y)每个点发一袋Z类型的物品。完成所有发放后,每个点存放最多的是哪种物品。Solution\mathrm{Solution}Solution我们可以用数组cnt[x][v]cnt[x][v]cnt[x][v]表示节点xxx中权值vvv的出现次数。由于暴力修
pigzhouyb
·
2019-09-16 08:32
线段树
树上差分
路径并计数,51nod1828,
线段树合并
正题Portal这题咕了好久,因为前面一直认为
线段树合并
是非常玄学的,就一直没有打(虽然现在也认为它很玄学
线段树合并
只对一些相似度很低的线段树进行合并,例如大范围的权值线段树就可以,具体操作是这样的:intmerge
Deep_Kevin
·
2019-08-30 21:30
路径并计数,51nod1828,
线段树合并
正题Portal这题咕了好久,因为前面一直认为
线段树合并
是非常玄学的,就一直没有打(虽然现在也认为它很玄学
线段树合并
只对一些相似度很低的线段树进行合并,例如大范围的权值线段树就可以,具体操作是这样的:intmerge
Deep_Kevin
·
2019-08-30 21:30
2019CCPC网络赛 1003.K-th occurrence(Sam
线段树合并
+倍增优化)
一句话题解:用
线段树合并
维护right集,对于每个串记录在sam里的位置,倍增跳到合适的节点之后在那个节点的线段树里查询kth。
Cymbals
·
2019-08-23 22:51
ACM
后缀自动机
2019CCPC网络赛 1003.K-th occurrence(Sam
线段树合并
+倍增优化)
一句话题解:用
线段树合并
维护right集,对于每个串记录在sam里的位置,倍增跳到合适的节点之后在那个节点的线段树里查询kth。
Cymbals
·
2019-08-23 22:51
ACM
后缀自动机
【总结】
线段树合并
杂题
bzoj1483:[HNOI2009]梦幻布丁每个颜色建一颗线段树,改色就是暴力合并两个颜色的线段树,维护连续区间个数即可。p.s也可以链表合并做2212:[Poi2011]TreeRotations从叶子节点向上,计算swap(lchild,rchild)swap(lchild,rchild)swap(lchild,rchild)后的逆序对个数和原来的逆序对个数,贪心换/不换。计算逆序对个数可以
ccosi
·
2019-04-01 20:44
线段树
NOI2018情报中心(虚树+
线段树合并
)
题目链接题目大意给定一棵nnn个节点的树,以及mmm条链,每条链有费用,每条边有收益。问选出两条至少一条边重合的链,使链并上的边权和−-−两条链的总费用最大。n≤106,m≤2×106n\le10^6,m\le2\times10^6n≤106,m≤2×106。题解不妨进行分类讨论。首先,如果两条链的LCA不是同一个点,那么形成的图应该长这样:(盗个图)那么它对答案的贡献应该是:两条链的长度和−-−
WAautomaton
·
2019-03-30 11:26
比赛
线段树
虚树
BZOJ 3551: [ONTAK2010]Peaks加强版 【kruskal树+
线段树合并
】
题目描述:在Bytemountains有N座山峰,每座山峰有他的高度h_i。有些山峰之间有双向道路相连,共M条路径,每条路径有一个困难值c,这个值越大表示越难走,现在有Q组询问,每组询问询问从点v开始只经过困难值小于等于x的路径所能到达的山峰中第k高的山峰的高度,如果无解输出-1。N<=105,M,Q<=5∗105,hi,c,x<=109。N<=10^5,M,Q<=5
Master.Yi
·
2019-03-25 11:50
线段树
bzoj4556: [Tjoi2016&Heoi2016]字符串(二分答案+sam+
线段树合并
)
传送门题意:给一个字符串SSS。有mmm次询问,每次给四个参数a,b,c,da,b,c,da,b,c,d,问s[a...b]s[a...b]s[a...b]的所有子串和s[x...y]s[x...y]s[x...y]的最长公共前缀是多少。思路:先翻转字符串转化为求最长公共后缀。设现在求s[a...b]s[a...b]s[a...b]的所有子串和s[x...y]s[x...y]s[x...y]的最长
SC.ldxcaicai
·
2019-02-27 21:49
#
二分答案
#
线段树合并
#
后缀自动机
FJOI2018 部分题解
那么显然fi,j=∑max{fv,k≥j}+1f_{i,j}=\sum\max\{f_{v,k\gej}\}+1fi,j=∑max{fv,k≥j}+1直接上
线段树合并
来优化就完了。
SC.ldxcaicai
·
2019-02-26 21:24
#
题解
【双树问题-树剖+
线段树合并
】CC_EDGEST Edges in Spanning Trees
【题目】Codechef给定相同点集(大小为nnn)上两棵生成树T1,T2T_1,T_2T1,T2。对于T1T_1T1中每条边,求T2T_2T2中有多少条边满足:T1−e1+e2T_1-e_1+e_2T1−e1+e2(从T1T_1T1中删去e1e_1e1再加上e2e_2e2)是一棵生成树T2−e2+e1T_2-e_2+e_1T2−e2+e1是一棵生成树n≤2×105n\leq2\times10^5
Dream_Lolita
·
2019-02-22 21:42
Tree-树链剖分
数据结构-线段树
bzoj5457: 城市(
线段树合并
)
传送门
线段树合并
菜题。题意简述:给一棵树,每个节点有bib_ibi个aia_iai民族的人,问对于每棵子树,子树中哪个民族的人最多,有多少人。思路:直接上
线段树合并
,边合并边维护答案即可。
SC.ldxcaicai
·
2019-01-19 15:52
#
线段树合并
bzoj4399: 魔法少女LJJ(
线段树合并
)
传送门
线段树合并
菜题(然而findfindfind函数写错位置调了好久)支持的操作题目写的很清楚了,然后有一个神奇的限制c≤7c\le7c≤7要注意到不然会去想毒瘤线段树的做法。
SC.ldxcaicai
·
2019-01-16 19:07
#
线段树合并
【思维题+
线段树合并
】UOJ418 【集训队作业2018】三角形
【题目】原题地址一棵nnn个节点的有根树,每个节点有权值wiw_iwi。有两种操作:从手中取wiw_iwi个石子放在iii节点上,此操作要求所有儿子jjj上都有wjw_jwj个石子将节点iii上的石子收回手中对于每个节点iii,为了在iii上放wiw_iwi个石子,手上至少要有多少个石子。n≤105,wi≤109n\leq10^5,w_i\leq10^9n≤105,wi≤109【解题思路】正着做似
Dream_Lolita
·
2019-01-15 21:27
数据结构-线段树
【思维题+
线段树合并
】UOJ418 【集训队作业2018】三角形
【题目】原题地址一棵nnn个节点的有根树,每个节点有权值wiw_iwi。有两种操作:从手中取wiw_iwi个石子放在iii节点上,此操作要求所有儿子jjj上都有wjw_jwj个石子将节点iii上的石子收回手中对于每个节点iii,为了在iii上放wiw_iwi个石子,手上至少要有多少个石子。n≤105,wi≤109n\leq10^5,w_i\leq10^9n≤105,wi≤109【解题思路】正着做似
Dream_Lolita
·
2019-01-15 21:27
数据结构-线段树
bzoj4530: [Bjoi2014]大融合(
线段树合并
)
传送门
线段树合并
菜题。题意简述:nnn个点,支持连边以及查询一个点所在连通块中经过这个点的路径条数,保证这张图时刻为森林。
SC.ldxcaicai
·
2019-01-14 18:35
#
线段树合并
【SAM+
线段树合并
/SA+扫描线】CF1037H Security
【题目】原题地址给定一个长度为nnn的字符串SSS和qqq个询问,每次询问形如lrTl\r\TlrT,其中TTT是一个字符串,表示询问sl,…,srs_l,\dots,s_rsl,…,sr这个字符串中比TTT字典序大的字典序最小的子串是什么,如没有则输出−1-1−1。n≤105,q,∣S∣,∑∣T∣≤2×105n\leq10^5,q,|S|,\sum|T|\leq2\times10^5n≤105,
Dream_Lolita
·
2018-12-02 15:29
字符串-后缀数组
字符串-SAM
「NOI.AC」Leaves
线段树合并
题目描述现在有一棵二叉树,所有非叶子节点都有两个孩子。在每个叶子节点上有一个权值(有\(n\)个叶子节点,满足这些权值为\(1\dotsn\)的一个排列)。可以任意交换每个非叶子节点的左右孩子。要求进行一系列交换,使得最终所有叶子节点的权值按照遍历序写出来,逆序对个数最少。输入第一行\(n\)表示叶子结点个数接下来每行一个数\(x\)。如果\(x\)为\(0\),表示这个节点为非叶子节点,递归地向
ModestStarlight
·
2018-10-27 16:00
2018.10.26 NOIP模拟 图(最小生成树+
线段树合并
)
传送门首先最开始说的那个一条路径的权值就是想告诉你两个点之间的贡献就是瓶颈边的权值。那么肯定要用最小生成树算法。于是我考场上想了30min+30min+30min+的树形dpdpdp发现转移是优秀的nlognnlog_nnlogn,总时间复杂度O(n2logn)O(n^2log_n)O(n2logn)妙啊然后有了弃疗的想法。突然想到没有利用kruskalkruskalkruskal算法的性质。其实
SC.ldxcaicai
·
2018-10-26 16:32
#
线段树合并
#
最小生成树
【
线段树合并
+虚树/启发式合并/欧拉序】LOJ2722 NOI2018情报中心
【题目】原题地址给定一棵带边权树和树上的mmm条链,每条链有一个花费cic_ici,两条有边交的链的价值定义为:链并的边权和-两条链的花费。求最大价值。(需要用一个logloglog的做法)【题目分析】这题是SCSCSC在看,我跑过去凑热闹,然后我们搞了一个星期…\dots…两个部分都搞出了一个可行的做法,然后看题解…\dots…震惊,还能这样做。(update:如果有大佬能把第二个常数巨大的代码
Dream_Lolita
·
2018-09-26 14:55
数据结构-线段树
Tree-LCA相关
其他-虚树
【
线段树合并
+虚树/启发式合并/欧拉序】LOJ2722 NOI2018情报中心
【题目】原题地址给定一棵带边权树和树上的mmm条链,每条链有一个花费cic_ici,两条有边交的链的价值定义为:链并的边权和-两条链的花费。求最大价值。(需要用一个logloglog的做法)【题目分析】这题是SCSCSC在看,我跑过去凑热闹,然后我们搞了一个星期…\dots…两个部分都搞出了一个可行的做法,然后看题解…\dots…震惊,还能这样做。(update:如果有大佬能把第二个常数巨大的代码
Dream_Lolita
·
2018-09-26 14:55
数据结构-线段树
Tree-LCA相关
其他-虚树
有趣的线段树模板合集(线段树,最短/长路,单调栈,
线段树合并
,线段树分裂,树上差分,Tarjan-LCA,势能线段树,李超线段树)
线段树分裂以某个键值为中点将线段树分裂成左右两部分,应该类似Treap的分裂吧(我菜不会Treap)。一般应用于区间排序。方法很简单,就是把分裂之后的两棵树的重复的\(\log\)个节点新建出来,单次时间复杂度严格\(O(\logn)\)。至于又有合并又有分裂的复杂度,蒟蒻一直不会比较有说服力的证明,直到看见SovietPower巨佬的题解对于只有合并:合并两棵线段树的过程,是找到它们\(x\)个
Flash_Hu
·
2018-09-15 15:00
【BZOJ】4771: 七彩树 -
线段树合并
&主席树&set
传送门:bzoj4771题解为满足深度和子树两个限制,预处理出dfsdfs序和每层的点,然后按深度递增,dfsdfs序为下标建立主席树,每次询问查询(rt[depx+d],in[x],ot[x])(rt[depx+d],in[x],ot[x]),[in[x],ot[x]][in[x],ot[x]]表示dfsdfs序中xx的子树区间。为保证每个出现的颜色贡献为11,每个颜色建一个按dfsdfs序升序
ccosi
·
2018-08-29 16:57
线段树
set
主席树
2018.08.28 洛谷P4556 [Vani有约会]雨天的尾巴(树上差分+
线段树合并
)
对于每次修改,我们用树上差分的思想,然后
线段树合并
统计答案就行了。注意颜色很大需要离散化。
SC.ldxcaicai
·
2018-08-28 22:06
#
线段树合并
hdu 6430 TeaTree
线段树合并
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6430对每个节点开一颗线段树,标程的写法很节省空间:预处理出每个数字的因数,对题目中给定的权值建线段树,如果子树区间中没有根节点权值的因数,那么直接剪掉。然后通过改变每个根节点左右孩子数组的值,来改变其指向的子树根节点(即合并过程)。相当于是一棵精简的线段树。因为权值最大为1e5,所以nlognlogn
Dale_zero
·
2018-08-25 01:10
线段树合并
线段树(合并/分治)&&重/长链剖分&&主席树专题(持续更新中)
文章目录一篇与线段树有关的sbPDF常规线段树(简单)线段树入门操作主席树(中等)线段树与算法(中等)线段树分治(中等)
线段树合并
线段树/树剖维护DDP(中等)线段树一些妙题线段树高端操作(偏难)李超线段树吉司机类线段树线段树与均摊分析树链剖分综合
SC.ldxcaicai
·
2018-07-28 16:09
#
线段树
#
树链剖分
#
线段树合并
#
线段树分治
#
长链剖分
#
二进制分组
[POI2011]Tree Rotations(
线段树合并
)
题目链接\(Description\)给定一棵n个叶子的二叉树,每个叶节点有权值(1#include#include//#definegc()getchar()#defineMAXIN300000#definegc()(SS==TT&&(TT=(SS=IN)+fread(IN,1,MAXIN,stdin),SS==TT)?EOF:*SS++)typedeflonglongLL;constintN=
SovietPower
·
2018-07-12 17:00
「PKUWC2018」Minimax-
线段树合并
题解我们从叶子节点逐层递归到根节点。我们可以建动态开点权值线段树,每个结点上建一颗,递归时考虑合并左右子树的信息。可以得到,当合并左右儿子到某父结点上时,可以这样转移:设f[i][j]是在i结点上,权值为j(令权值为j只能从左儿子中转移上来)的概率,则f[i][j]=f[lc[i]][j]∗((1−p)∗sum1[rc[i]](所有值大于i的节点上的概率之和)+p∗sum2[rc[i]](所有值小
ccosi
·
2018-06-23 00:06
妙
线段树可持久化合并
「PKUWC2018」Minimax [
线段树合并
概率/期望]
「PKUWC2018」MinimaxTags:
线段树合并
概率DP「PKUWC2018」Minimax题意有一个有n个结点的有根二叉树,对于一个点x。如果x为叶子结点,那么权值为它本身。
_Satori
·
2018-06-22 14:53
——概率DP
loj2537「PKUWC2018」Minimax(
线段树合并
)
因为叶子权值各不相同,我们考虑
线段树合并
,在merge时维护每个权值的概率。我们记gr为x的右子树中比我大的权值的概率和,我们合并时先做右子树,再做左子树。
Icefox_zhx
·
2018-06-07 11:38
其他oj
线段树
[bzoj3545][ONTAK2010]Peaks【线段树】【并查集】
用
线段树合并
维护权值线段树。查询时查询所在块的第K大即可。时间复杂度O(N∗logN)O(N∗logN)此题也有在线做法,
VanishD
·
2018-05-29 18:03
【线段树】
【并查集】
[bzoj4552][Tjoi2016&Heoi2016]排序【线段树】
首先把每个点都建出一棵权值线段树,每次排序时,将包含的权值
线段树合并
在一起即可。可以用set维护当前的线段树集合。
VanishD
·
2018-05-28 22:45
【线段树】
bzoj3307 雨天的尾巴(树上差分+
线段树合并
)
每个点一颗权值线段树,因为只有最后一次询问,因此我们可以树上差分,最后一遍dfs合并出来。点数应该最多是4n4n的,所以复杂度应该还是O((n+m)log1e9)O((n+m)log1e9)的#includeusingnamespacestd;#definelllonglong#defineinf0x3f3f3f3f#defineN100010inlinechargc(){staticcharbu
Icefox_zhx
·
2018-05-24 16:25
-----树-------
bzoj
线段树
差分
上一页
1
2
3
4
5
6
下一页
按字母分类:
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
其他