一些区间内的子串问题

匹配

CF666E Forensic Examination

[NOI2018]你的名字

统计

离线+LCT+SAM

1.考虑新加入的前缀影响

2.本质相同的子串在最后位置统计一次

3.LCT的access维护right集合最后出现的元素位置

区间两两LCS最大值

省选模拟赛第八轮T1

区间本质不同子串,结尾在[l,r]区间

类似。加入r,更新时候,整个实链ri位置减去mxlen-minlen+1,r位置加上mxlen-minlen+1

线段树叶子k的权值意义:[1,r]的前缀中所有子串,最后一次结尾出现在k的子串个


upda: 2019.5.11

上面那个问题太简单扔掉。

区间本质不同子串,出现在[l,r]区间的子串

还是离线,当前右端点是r

线段树每个位置p维护[p,r]的区间中的、最后一次出现是以p开始的子串的个数

也就是把本质相同的子串只在最后一次开始出现的位置统计一次

新加入r

对于right集合x,子串[p-len[x]+1~p-len[fa[x]],p]都有了新的“最后出现位置”

对于之前的p-len[x]+1~p-len[fa[x]]线段树区间--

对于之后的p-len[x]+1~p-len[fa[x]]线段树区间++

查询线段树区间和。


LCT的access应用还有:树上染色,重组病毒

利用实链本身结构维护等价类

优秀

数颜色

固定r,维护最后一次出现的位置,

固定l,维护第一次出现位置,

看怎么排序吧。。。

原文地址:https://www.cnblogs.com/Miracevin/p/10513030.html