F - LCS Editorial by rsk0315


\(\Theta(|S|\cdot |T|)\) 時間の DP が有名ですが、\(O(|S|+|T|+\delta(S, T)^2)\) 時間のアルゴリズムが存在します。ここで、\(S\)\(T\) の LCS を \(L\) として、\(\delta(S, T) = (|S|-|L|) + (|T|-|L|)\) です。直感的には、\(S\)\(T\) が似ているときほど高速です。

SA-IS + LCP 配列の線形構築 + 線形 RMQ などを用います。

posted:
last update: