【后缀自动机】 SPOJ LCS2 Longest Common Substring II
通道:http://www.spoj.com/problems/LCS2/
题意:LCS的进阶,不过这个是问N(<10)串的LCS
思路:对A串建立SAM,然后每加入一个串就进行匹配,定义这些和上一题差不多,不过这里可能会超时,有个小优化dp[i][j]:前I个字符串的k位置时对应的A串的j节点的最大长度,转移dp[i][j] = max(dp[i][j], min(dp[i - 1][j], ans));然后从p节点向上跳将dp[i-1][j]>dp[i][j]的都更新掉即可。
代码:https://github.com/Mithril0rd/Rojo/blob/master/SPOJLCS2.cpp
TAG:LCS进阶