Input:
g
cgcgtgttaatacagattccctatgtgatatatatgtggtgctaccacacggcgctgttcaggttccgttcccacgcctgtcaaactgagtacctagcgcattctaaagtg
输出显然为 1。但 @eros1on 的题解和 @CodyTheWolf 的题解输出均为 0。
原因是在判断两个后缀属于不同的子串的时候出现了错误。
以 @eros1on 的题解为例。
for(int i = 2; i <= n; i++)
if((sa[i] > len && sa[i - 1] < len)
|| (sa[i] < len && sa[i - 1] > len))
ans = max(ans, h[i]);
中的 < len 应改为 <= len。
故请求撤下题解。但好像这题的 SA 的题解都被卡掉了,所以管理员帮忙修改一下也可以?