CF49E 题解

发布时间 2023-09-22 16:38:59作者: liangbowen

problem & blog

提供一个逻辑顺畅的思路(然而做法相同的)。


手玩样例,Sample1 是 \(\texttt{ac}\to[\texttt{a}][\texttt{baba}]\)\([\texttt{a}][\texttt{ba}]\)。很显然样例有分段性质,所以 DP,\(dp_{i,j}\) 表示 \(s_{1,2,\cdots,i}\)\(t_{1,2,\cdots,j}\) 的最短祖先长度。

很 naive 地,\(dp_{i,j}=\min\{dp_{i_0,j_0}+1\}(\#)\)\(\#\) 满足 \((i_0,i-1)\)\((j_0,j-1)\) 可以由同一个字符转换到。于是处理一下 \(\#\) 即可。

发现这件事情是 \([i,j]\) 能否由 \(C\) 得到,所以区间 DP,转移是平凡的。预处理后就做完了。

code,时间复杂度 \(O(n^4A)\)\(A=26\),常数很小。