#P1201. Problem A. 你说的对,但是这是签到 I
Problem A. 你说的对,但是这是签到 I
Problem A. 你说的对,但是这是签到 I
时间限制 : 1000 ms
空间限制 : 256 MB
题目背景
pzr 最近学习了后缀数组,知道了最长公共子串的 解法。
所谓 最长公共子串(Longest Common Substring, LCS) 问题,就是指求给定的一组字符串的最大的共有的子串的问题。例如字符串”abcb” 和 ”adbc”的最长公共子串就是”bc”。
用后缀数组的技巧求 和 的最长公共子串时,先取未出现过的字符 '&' 作为分隔符,设 。采用倍增算法求出 的后缀数组 SA 和 Height 数组。 接下来二分枚举答案 ,如果 可行,则在 Height 数组中连续的一段 [i, j],对任意 有 Height[k] >= A ,且 SA[k] 既有在 '&' 前的部分,又有在 '&' 后的部分。那么,总体的时间复杂度是 ,其中 是字符串的长度。
题目描述
如果长度为 的字符串 满足以下条件,则称它是 单调不减 的:
- 对于 ,有 。这里是按照 ascii 码比较,即 'a' < 'b' < 'c' < ... < 'z'。
例如,"acos" , "abs" 和 "nnu" 是单调不减的,但 "sin" 和 "pzr" 不是。
给出仅由小写字母组成的 单调不减 的字符串 ,求 和 的最长公共子串长度。
输入格式
包含两行。第一行一个字符串 ,第二行一个字符串 。
输出格式
仅一个非负整数,表示最长公共子串的长度。
样例输入1
aabbcdeee
abbcccee
样例输出1
4
样例1解释
a abbc deee
abbc ccee
最长公共子串为 abbc,长度为 。可以证明无法找到更长的公共子串。
数据范围与约定
, 和 仅由小写字母组成。
保证 和 是单调不减的。
相关
在下列比赛中: