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
--------线段树合并
[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
【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
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
并查集
线段树合并
BZOJ4530: [Bjoi2014]大融合(LCT维护子树,
线段树合并
)
传送门题意:给一个动态树,维护sze集合大小。题解:动态树。LCT维护子树和的方法(不支持子树修改,其实实现起来也挺简单的):对于维护这一类满足加减的信息,可以考虑在LCT的每个点分别维护出所有虚边和实边连向他和。如果得到了维护,那么可以轻松在O(logn)时间内完成询问。考虑怎么维护:首先Splay不会改变虚边的性质,那么Splay中直接动态调整实边的和就好了。对于Access操作,显然断开右儿
DZYO
·
2020-08-08 11:20
动态树
线段树
bzoj 4719: [Noip2016]天天爱跑步
线段树合并
题意有一棵n个节点的树,每条边权为1,每个节点都会在某一个时间出现观察员且只会出现一次。现有m个玩家,给定每个玩家的起点,然后每个玩家会在时刻0从起点出发,沿着唯一的路径走向终点。问每个观察员分别可以看到多少个玩家。n,m#include#include#include#include#defineN300005usingnamespacestd;intn,m,cnt,tot,last[N],ls
SFN1036
·
2020-08-08 11:46
线段树
LuoguP5327 [ZJOI2019]语言
线段树合并
+树链求并
比较好的一道数据结构题.对于$i$,我们希望求出所有经过$i$号点的路径所构成的树链之并.考虑一个求解树链的并的经典做法就是$\sum_{i=1}^{n}dep[i]-\sum_{i=2}^{n}dep[LCA(i,i-1)]$.这里要求所有点都要按照$dfs$序排好.那么这道题中我们就基于DFS序对每个点建立动态开点线段树.加入一条路径就是在$x,y$处添加$(x,y)$,然后在$fa[lca]
EM-LGH
·
2020-08-08 11:53
线段树合并
的思想和应用(末尾附一些习题)
讲前须知:线段树动态开点1.概念
线段树合并
,一般来说是与线段树动态开点一起用的,它的作用将两棵线段树所统计的信息整合到一棵线段树上。
一个不愿透露姓名的OIER
·
2020-08-08 02:24
GDSOI2017第三轮模拟4.21 总结
发现了ban的区间是dfs序上的一段后,就开始yy套路,结果居然想着
线段树合并
。而且还把决策单调性推错了。事实证明,都不知道当时在干什么???3第三题看着就觉得很数据结构,于是打了暴力
weixin_30877493
·
2020-08-08 02:54
[湖南集训]谈笑风生 长链剖分
[湖南集训]谈笑风生LG传送门这题有很多方法做,一堆大佬用
线段树合并
、主席树来做,但是我太弱了,只会长链剖分。长链剖分的解法,思维简单,码量极低,是你的不二之选!还是老规矩,先上\(n^2\)DP。
weixin_30300523
·
2020-08-08 02:16
luogu P3899 [湖南集训]谈笑风生
线段树合并
Code:#include#definemaxn300002#definelllonglongusingnamespacestd;voidsetIO(strings){stringin=s+".in";stringout=s+".out";freopen(in.c_str(),"r",stdin);freopen(out.c_str(),"w",stdout);}namespacetr{#defi
EM-LGH
·
2020-08-08 01:45
洛谷3899 谈笑风生
线段树合并
题目链接题意:给你一棵n个点的树,边的边权都是1。有q次询问,每次询问给一个a一个x,表示询问满足下列条件的三元组的个数:(a,b,c),使得a和b都是c的祖先节点并且a与b的距离不超过x。n,qusingnamespacestd;intn,q,hed[300010],cnt,fa[300010],dep[300010],num,root[300010],sz[300010],ji;structn
forever_shi
·
2020-08-08 01:33
数据结构
线段树
线段树合并
【湖南集训 】谈笑风生题解
线段树合并
题目:https://www.luogu.org/problemnew/show/P3899蒟蒻第一道1A的
线段树合并
,写个博客纪念一下。
一个不愿透露姓名的OIER
·
2020-08-08 01:33
「PKUWC2018」Minimax
线段树合并
这个题的n^2dp是很显然的线段树优化dp也是很显然的这个题的价值在于增加
线段树合并
技能熟练度#include#include#include#include#include#include#include
BlackJack_
·
2020-08-07 11:29
线段树/树状数组
—————————中级数据结构
—————————dp
线段树合并
+模拟大题
简述难点 这种题极其友(e)好(xin),基本上就是\(pushup\),\(build\),\(pushdown\),\(update\),\(query\),传统线段树五套餐伺候,但是要维护的信息极多,关键还不太能想到要怎么样维护信息,而且维护代码极长。题目一子区间最大公约数NC15557连续区间的最大公约数 这道题没有修改,只有查询。查询最大公约数还是比较简单的,但是查询子区间的最大公约
ailanxier
·
2020-08-05 09:00
近期考试反思
T2裸的Smily
线段树合并
,二十分
weixin_30757793
·
2020-08-05 02:13
学习笔记--
线段树合并
先膜一发xhk大佬,
线段树合并
之前觉得没什么用,经过xhk大佬讲了一波发现用来处理一些有关树的问题很好用,复杂度也不错(应该是nlog?但是因为常数十分爆炸其实跟nlog^2也差不多。。)
caoyang1123
·
2020-08-04 13:22
刷题集
笔记
【2019暑假集训】08.13比赛总结
T3(树):树形DP+启发式合并+
线段树合并
赛后消化T1直接
YiPeng_Deng
·
2020-08-03 23:29
总结反思
【2019暑假集训】07.10比赛总结
yy了好一阵子(又是什么
线段树合并
,又是什么二分套线段
YiPeng_Deng
·
2020-08-03 23:28
总结反思
【SAM】loj#6401. 字符串
网上有篇题解写的是
线段树合并
维护求值?题目描述有一个只包含小写字母,长度为$n$的字符串$S$。有一些字母是好的,剩下的是坏的。
weixin_30797027
·
2020-08-03 06:37
【广义SAM+
线段树合并
】CF666E Forensic Examination
【题目】原题地址给定一个模式串SSS和nnn个匹配串TiT_iTi。qqq个询问形如(l,r,pl,pr)(l,r,pl,pr)(l,r,pl,pr),问S[pl…pr]S[pl\dotspr]S[pl…pr]在Tl…TrT_l\dotsT_rTl…Tr中哪个出现了最多次(可重叠),输出这个次数和是哪个串。∣S∣,q≤5×105,n,∑∣T∣≤5×104|S|,q\leq5\times10^5,n
Dream_Lolita
·
2020-08-02 21:37
字符串-SAM
数据结构-线段树
OI省选算法汇总
基本数据结构1.数组2.链表,双向链表3.队列,单调队列,双端队列4.栈,单调栈1.2中级数据结构1.堆2.并查集与带权并查集3.hash表自然溢出双hash1.3高级数据结构1.树状数组2.线段树,
线段树合并
Byte97
·
2020-08-02 15:47
算法
hdu多校第十场题解(>=100人)
ProblemE.TeaTree第一次见
线段树合并
的题,没想到线段树还能这么用。真好玩。。这题没什么逻辑问题,std也写的很好。这里就不多说了。
大学要有梦想
·
2020-07-31 12:12
比赛总结
bzoj 4003: [JLOI2015]城池攻占 左偏树
看了题解发现原来可以用数据结构来做,就是像
线段树合并
那样从底下往上做,期间打打标记啥的就好了。左偏树平衡树什么的都很资瓷啊。#代码##in
SFN1036
·
2020-07-29 22:11
左偏树
bzoj4919 大根堆 [启发式合并]
Solution:吐槽:考试怒刚t2t2,结果没调出来,看到t3t3觉得是
线段树合并
之类的题,感觉写不出来。
pocket_legend
·
2020-07-28 04:33
平衡树
启发式合并
OJ-bzoj
[边分治+
线段树合并
]「CTSC2018」暴力写挂
题目梗概给出两棵1为根的树,求\(d[x]+d[y]-d[lca(x,y)]-d'[lca(x,y)]\)的最大值解题思路套路化简之后\((d[x]+d[y]+dis(x,y)-2*d'[lca(x,y)])/2\)第二棵树上的lca化不掉,所以考虑在第二棵上枚举lca先说说这题的解法,边分树的合并.边分和点分有什么区别,边分在合并类似\(d[x]+d[y]+dis(x,y)\)这种贡献是很方便,
weixin_30653023
·
2020-07-15 03:21
[Treap套权值线段树 线段树分裂与合并] BZOJ 4552 [Tjoi2016&Heoi2016]排序
线段树合并
写了不少分裂是第一次直接每一个有序区间用一棵权值线段树维护有哪些数外层用treap维护顺序然后排序就把代表这段的很多颗
线段树合并
在一起两端处会割开某个有序区间会涉及分裂操作#include#include
里阿奴摩西
·
2020-07-13 16:07
线段树
平衡树
树套树
【Codeforces 666 E】—Forensic Examination(广义Sam+
线段树合并
)
传送门考虑对所有串建出广义SamSamSam用
线段树合并
维护每个节点在哪些串中出现以及最大出现次数对于每个询问,先找到rrr匹配到的节点然后树上倍增找到s[l,r]s[l,r]s[l,r]对应的节点在线段树上查询即可要特判这个串没有匹配的情况
Stargazer.
·
2020-07-11 20:29
线段树合并
后缀自动机Sam
Codeforces 666E Forensic Examination
mm个匹配字符串,问S[pl,pr]S[pl,pr]这段字符在,编号在[l,r][l,r]之间的字符串中出现次数最多的是哪一个,出现了多少次(最大次数相同则输出编号较小的)不完整理解+解法(后缀自动机+
线段树合并
南开大微笑
·
2020-07-11 18:33
CodeForces
字符串
数据结构
20200704联考T2 B
覆盖的大小必定随长度的增加单调不降维护endpos集合相邻两个位置的距离,二分+线段树可以快速算出长度为\(mid\)的子串覆盖的大小在后缀树上从下往上合并,两个位置的距离用set维护,在线段树上修改
线段树合并
Darknesses
·
2020-07-05 22:00
【cf666e Forensic Examination】(后缀自动机+
线段树合并
)
这样问题就是子树众数,就可以用
线段树合并
一个log搞定。
broxin
·
2020-07-05 16:00
题解
字符串
线段树
PKUWC 2018 简要题解
vectorvectorvector之类的存下所有可能的值以及概率考虑如何合并,一个值的最终概率为它在子节点的概率乘上这一步取它的概率而这一步取它的概率为另外一个子节点>>它的概率和*取小的概率我们考虑将合并改成
线段树合并
FSYo
·
2020-07-05 13:11
省选
NOI题解
洛谷 P4770 [NOI2018]你的名字(后缀自动机+
线段树合并
)
题目链接emmm,这题其实也不是特别难,个人感觉比之前做过的两道
线段树合并
right的后缀自动机都要简单不少(另两道都至少长2k……首先考虑一下询问区间就是整串的情况我们先对长串S建SAM然后把询问串T
Philosophiofantasia
·
2020-07-05 03:44
洛谷
后缀自动机
线段树合并
4556: [Tjoi2016&Heoi2016]字符串
字符串题不会做先想能不能把字符串反过来把字符串反序,建立后缀自动机,利用
线段树合并
算出每个位置的right集二分答案,用树上倍增找到对应的节点,看是否有[a+mid-1,b]中的数在right集中#include
heheda_is_an_OIer
·
2020-07-04 17:45
「PKUWC2018」Minimax
线段树合并
题解:直接
线段树合并
维护选到每个数的概率,合并时先左再右,顺便维护某个点比它小的概率和,区间修改时打标记即可。
200815147
·
2020-07-04 11:06
线段树合并
[BZOJ4552][TJOI2016&HEOI2016]排序-
线段树合并
排序Description在2016年,佳媛姐姐喜欢上了数字序列。因而他经常研究关于序列的一些奇奇怪怪的问题,现在他在研究一个难题,需要你来帮助他。这个难题是这样子的:给出一个1到n的全排列,现在对这个全排列序列进行m次局部排序,排序分为两种:1:(0,l,r)表示将区间[l,r]的数字升序排序2:(1,l,r)表示将区间[l,r]的数字降序排序最后询问第q位置上的数字。Input输入数据的第一行
zlttttt
·
2020-06-30 18:27
线段树
【Segment
Tree】
HDU - 4358 Boring counting (树上启发式合并/
线段树合并
)
dsuontree/
线段树合并
裸题。
weixin_30302609
·
2020-06-27 15:02
Trie树合并
因为省选\(Day2T2\)来学习\(01\trie\)合并……首先和
线段树合并
还有左偏树的\(merge\)一样的,就是一个\(merge\)函数inlineintmerge(intx,inty){if
言似缥缈
·
2020-06-25 23:00
启发式合并(堆、set、splay、treap)/
线段树合并
学习小记
启发式合并刚听到这个东西的时候,我是相当蒙圈的。特别是“启发式”这三个字莫名的装逼,因此之前一直没有学。实际上,这个东西就是一个SB贪心。以堆为例,若我们要合并两个堆a、b,我们有一种极其简单的做法:那就是比较一下它们的大小,将小的堆的每个元素依次插入到大的堆中。不妨设|a|≤|b||a|≤|b|,则时间复杂度即为:O(|a|∗log2(|a|+|b|))O(|a|∗log2(|a|+|b|))。
Iking123
·
2020-06-25 11:05
学习小记
启发式合并
-------data
Segment
Tree
平衡树
heap
CF666E Forensic Examination
题目传送门分析:把后面的串建一个广义SAM,每个点开一个线段树,下标是该点所在的串的编号,记录这个编号的T串里这个endpos集合子串的出现次数Parent树上
线段树合并
然后对S串每一个前缀的终点,找到其在
Darknesses
·
2020-06-11 21:00
题解【CF208E Blood Cousins】
一个奇奇怪怪的复杂度很垃圾的
线段树合并
解法通过分析可以发现,要找$x$的$k$辈兄弟,只需要找到$x$的$k$辈祖先,然后查找以该祖先为根的子树中和$x$深度相同的节点个数$-1$即可。
TEoS
·
2020-05-27 22:00
洛谷P3899 [湖南集训]谈笑风生(
线段树合并
)
为了学长链剖分开的题,结果还是忍不住写了个
线段树合并
首先不难发现:$b$要么是$a$的祖先,要么是$a$的后代。
wangyuchen
·
2020-03-15 12:00
[PKUWC2018]Minimax [dp,
线段树合并
]
好妙的一个题…我们设\(f_{i,j}\)为\(i\)节点出现\(j\)的概率设\(l=ch[i][0],r=ch[i][1]\)即左儿子右儿子设\(m\)为叶子结点的个数显然,\(i\)出现\(j\)的概率为\[f_{i,j}=f_{l,j}*(p_i\sum_{k=1}^{j-1}f_{r,k}+(1-p_i)\sum_{k=j+1}^{m}f_{r,k})+f_{r,j}*(p_i\sum_
_Isaunoya
·
2020-02-17 15:00
BZOJ 2733: [HNOI2012]永无乡
并查集加
线段树合并
直接对两个集合的根合并,查询也在并查集的根上查,这样就不需要可持久化了#includeusingnamespacestd;templateinlinevoidread(T&x){x=0
Mrzdtz220
·
2020-02-16 12:00
BZOJ 4771: 七彩树
还有一个就是
线段树合并
这个题就很nb对每个节点开两个权值线段树第一个线段树维护每个深度出现的颜色种类数,每种颜色只在最浅深度起贡献第二个线段树维护每种颜色出现的最浅深度维护方法就是,首先进入一个节点,对第一棵线段树的
Mrzdtz220
·
2020-02-16 11:00
BZOJ #5457: 城市 [
线段树合并
]
线段树合并
的板子题,每次从下到上合并就完事了//byIsaunoya#includeusingnamespacestd;#definerep(i,j,n)for(inti=j;i#definefirfirst
_Isaunoya
·
2020-02-11 19:00
洛谷P6071 Treequery(树链剖分+
线段树合并
+可持久化)
(在接下来的描述和图片中,用$dis_u$表示根(1号点)到$u$的路径的边权和;$[l,r]$范围内的点用蓝色表示,$p$用红色表示)我们考虑$lca_{l,l+1,\cdots,r}$(以下记为$lca$,用橙色表示),有以下情况:1.$lca$为$p$的孩子(或$p$)这表明$[l,r]$均为$p$的孩子(或$p$),那么答案为$dis_{lca}-dis_p$2.$[l,r]$中既有$p$
wangyuchen
·
2020-02-10 14:00
题解 USACO12DEC【逃跑的BarnRunning Away From…】
\[solution\]有关子树内的统计,肯定能联想到
线段树合并
吧。记\(d[u]\)表示根节点到\(u\)的距离,该数组可通过一次遍历求出。则对于每个点\(u\),它的贡献就是满足下式的点对数
cjtcalc
·
2020-01-20 09:00
上一页
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
其他