"Codeforces" 思路 感觉这个离线的思路好神仙啊qwq 对于每个询问$[l,r]$其实就是要求$p_{max}$,使得$lcs(s[1,p],s[1,r]) p l$,也就是$lcs(s[1,p],s[1,r])+l p$。 首先把询问离线按$r$排序,然后从右往左扫,每次 1. 处理之前 ...
分类:
其他好文 时间:
2019-08-08 00:33:22
阅读次数:
102
因为本人几乎不会后缀数组,所以遇到这种SA的模板题也要拿SAM解决。 还是有一点思维难度的。 首先按照国际惯例,建反串的SAM。 然后对于这个反串,我们考虑两个前缀哪一个字典序小:因为是串是反的,所以要从后往前比较,那么第一个不相同的字符一定是两个前缀在后缀树上的节点的lca的前一位。记其中一个节点 ...
分类:
编程语言 时间:
2019-07-14 15:14:08
阅读次数:
179
from:https://www.cnblogs.com/justinh/p/7716421.html Trie,又经常叫前缀树,字典树等等。它有很多变种,如后缀树,Radix Tree/Trie,PATRICIA tree,以及bitwise版本的crit-bit tree。当然很多名字的意义其实 ...
分类:
其他好文 时间:
2019-07-10 09:15:01
阅读次数:
419
~~1A真舒服。~~ 喜闻乐见的树链剖分+SA。 一个初步的想法就是用树链剖分,把两个字符串求出然后hash+二分lcp。。。不存在的。 我们用树链剖分拼出两个字符串(用树剖拼出的这两个字符串,一定是DFS序上一个一个区间拼在一起的,我们记录这些区间的左右端点。)因为考虑到这个字符串是有序的,我们需 ...
分类:
其他好文 时间:
2019-01-02 23:25:51
阅读次数:
336
很久没写过后缀自动机了。。 把之前写的题看了一遍 基本上理解了后缀自动机还是比较简单的 大体的构造方法就不说了 说一下如何应用 后缀自动机构造出了后缀树 所以从根开始可以匹配每个后缀 1.right集合 代码里的fa数组,记录第一个满足当前后缀的前缀出现次数和当前不一样的是哪个 2.len 记录当前 ...
分类:
其他好文 时间:
2018-12-23 15:34:10
阅读次数:
103
"传送门" 其实要求的东西就是后缀树上所有叶子对的距离之和.构建反串SAM,然后构建parent树(原串后缀树),然后就是树型dp的事,~~具体细节留给读者自行思考~~ ~~那个,不会看代码啊~~ cpp include define LL long long define il inline de ...
分类:
其他好文 时间:
2018-12-16 21:42:06
阅读次数:
142
(一)字符串题目的特点 ①广泛性 字符串可以看作字符类型的数组,与数组的排序、查找、调整有关 很多其他类型的题可看作字符串类型的题 ②需要掌握的概念 回文 子串(连续) 子序列(不连续) 前缀树(Trie树) 后缀树和后缀数组 匹配 字典序 ③需要掌握的操作 与数组有关的操作:增删改查 字符的替换 ...
分类:
编程语言 时间:
2018-12-15 11:58:08
阅读次数:
165
P4022 [CTSC2012]熟悉的文章 题目大意 $m$个文本,$n$个模式串 对于每个模式串: 求最大L使得该串能分解成不小于$L$的子串,且在文本中出现的长度不小于该串总长度的$90%$ 建广义后缀树 对于$L_1$,$L_2$两种情况,$L_1>L_2$,如果$L_1$符合,显然$L_2$ ...
分类:
其他好文 时间:
2018-12-15 11:43:00
阅读次数:
156
rt 明明能哈希为什么要KMP/AC自动机/后缀数组/后缀自动机/后缀树呢??????? 【XSY2361】LCP 给定串 S,m 组询问 (X, Y, L, R): 求 S[X:Y] 与 S[L:R] 的最长公共前缀. 1 #include<algorithm> 2 #include<iostre ...
分类:
其他好文 时间:
2018-12-14 13:01:33
阅读次数:
172
题解: 对于任何一个串的前x字符内的本质不同子串 我们可以直接在SAM树上得到 然后我们考虑循环串的性质 (设循环节长度为l ) 则大于2*l的位置为等差数列 即每增加一个字符则增加l个本质不同的子串 所以对于2*l我们在后缀树上处理处理 对于x>2*l我们 通过等差求得 F. 日落轨迹 单测试点时 ...
分类:
其他好文 时间:
2018-12-08 11:14:31
阅读次数:
182