思路 后缀自动机求最长循环串 首先有一个常用的处理技巧,将串复制一遍,长度大于n的子串中就包含了一组循环子串 然后是后缀自动机如何处理最长公共子串的问题 维护两个变量,u和l,u代表当前位置的最长公共子串在哪个状态中,l代表当前位置的最长公共子串的长度 然后如果当前位置有向T[i+1]转移的路径,则 ...
分类:
其他好文 时间:
2019-03-05 09:18:18
阅读次数:
158
最长子序列和最长子串是不同的,前者不要求字符连续。 参考自:https://blog.csdn.net/qq_31881469/article/details/77892324 ...
分类:
其他好文 时间:
2019-02-25 23:33:32
阅读次数:
357
#!一个序列S任意删除若干个字符得到的新序列T,则T叫做S的子序列 注意,这个和最长公共字串不一样,最长公共子串要求连续。 1.算法公式: 这里只是返回最大长度,如果求最大子序列,还需要进行回溯。 ...
分类:
编程语言 时间:
2019-01-30 15:48:47
阅读次数:
210
Problem A. String Master(master.c/cpp/pas) 题目描述 所谓最长公共子串,比如串 A:“abcde”,串 B:“jcdkl”,则它们的最长公共子串为串 “cd”,即长度最长的字符串,且在两个串中都作为连续子串出现过。给定两个长度都为 n 的字符串,对于字符串大 ...
分类:
其他好文 时间:
2019-01-27 19:31:21
阅读次数:
248
最长公共子串 lcs.cpp/.in/.out 计算两个字符串的最大公共子串(Longest Common Substring)的长度,字符不区分大小写,这里的最大公共子串要求的字串是连续的。 输入: 两行,每行一个字符串,字符串长度<=1000. 输出: 输出一个整数,表示公共子串的长度。 样例输 ...
分类:
其他好文 时间:
2019-01-25 19:21:19
阅读次数:
182
"传送门" 前一题的加强版……求10个串的最长公共子串的长度。 OI Wiki上的解法我没看懂…… 朴素的想法还是对第一个串建立SAM,之后把后面的串不断地在上面匹配,对于每一个状态记录匹配最小值,所有状态取最大值。不过这样是会WA的…… 为啥呢?因为我们是对于每个状态取最小,然后最后在算答案的时候 ...
分类:
其他好文 时间:
2019-01-12 22:54:18
阅读次数:
177
"传送门" 求两个字符串最长公共子串的长度。 对于第一个串S,建立SAM,之后对于第二个串T,我们在上面和S进行匹配。首先从$t_0$开始,如果能成功匹配的话,那么我们让长度+1,同时更新答案。如果失配,那我们就跳parent树转移到其父节点的位置,并且把当前匹配长度变为其最长后缀长度即可。 最后统 ...
分类:
其他好文 时间:
2019-01-12 22:49:17
阅读次数:
222
$\color{ 0066ff}{ 题目描述 }$ 题面描述 给定一些字符串,求出它们的最长公共子串 输入格式 输入至多$10$ 行,每行包含不超过$100000$ 个的小写字母,表示一个字符串 输出格式 一个数,最长公共子串的长度 若不存在最长公共子串,请输出$0$ 。 $\color{ 0066 ...
分类:
其他好文 时间:
2019-01-10 21:54:03
阅读次数:
181
$\color{ 0066ff}{ 题目描述 }$ 输入2 个长度不大于250000的字符串,输出这2 个字符串的最长公共子串。如果没有公共子串则输出0 。 $\color{ 0066ff}{输入格式}$ 两个字符串 $\color{ 0066ff}{输出格式}$ 一个整数,为 所求答案 $\col ...
分类:
其他好文 时间:
2019-01-10 19:30:34
阅读次数:
153