RT,第二篇题解中,作者说:
发现上述转移的主要问题在于对于同一个 j,跳的过程是一样的,但是每一次都会重复走一遍。所以考虑记忆化:在求出 j 所对应的 k 后,如果 k=j,则可以直接将 failj 改为k。可以证明这样转移复杂度均摊 O(1),于是我们就获得了可以AC的 O(NM) 复杂度算法。实测最大点85ms通过。
事实上“跳的过程是一样的”完全没道理,经我随机数据对拍 2000 多组后找到了一组 Hack 数据如下
Input:
abbacbccacbbbbcaacaaaaabcabcccabcbccbaacccbbaccabbacaccbbcbcabcaacbcacabbbcaacbbabbaacacbccbcacabbbc
ccbbacca
Answer:
1
Output:
0
请求加强数据并撤下第二篇题解。