20230723练习总结

发布时间 2023-07-23 18:18:35作者: 牛肉爱吃dks

CF923D Picking Strings

当变化规则不好分析的时候可以考虑自己随便模拟一下变化过程,总结浓缩出一些等价且更简单的变化规则。

尝试推出几个比较简单的变化关系:

  1. \(\texttt{B}\rightarrow\texttt{AC}\rightarrow\texttt{AAB}\rightarrow\texttt{AAAC}\rightarrow\texttt{C}\rightarrow\texttt{AB}\rightarrow\texttt{AAC}\rightarrow\texttt{AAAB}\rightarrow\texttt{B}\),这说明 \(\texttt{B}\)\(\texttt{C}\) 是等价的。

  2. \(\texttt{A}\rightarrow\texttt{BB}\),这说明 \(\texttt{A}\) 可以被替换为 \(\texttt{BB}\)

  3. \(\texttt{B}\rightarrow\texttt{AB}\rightarrow\texttt{AAB}\rightarrow\texttt{AAAB}\rightarrow\texttt{B}\),这说明 \(\texttt{B}\)\(\texttt{AB}\) 等价,即一个 \(\texttt{B}\) 可以随意增减前面紧接着的 \(\texttt{A}\)

现在有了三条简化的规则,就可以开始分析如何判断。

  • 由规则 \(1\),可以将 \(S\)\(T\) 中的 \(\texttt{C}\) 全部换成 \(\texttt{B}\)。变成了 \(A\)\(B\) 组成的串。

  • 由规则 \(3\),后缀的连续 \(\texttt{A}\) 无法增加,故 \(S\) 中的后缀连续 \(\texttt{A}\) 应该不多于 \(T\) 中的后缀连续 \(\texttt{A}\)

  • 如果 \(S\) 后缀的连续 \(\texttt{A}\)\(T\) 的后缀连续 \(\texttt{A}\) 数量之差不是 \(3\) 的倍数,将多出的部分替换成 \(\texttt{BB}\)

  • 由规则 \(2\)\(3\)\(\texttt{B}\) 会两个两个地增加或不变,故 \(S\)\(\texttt{B}\) 的数量应该不多于 \(T\)\(\texttt{B}\) 的数量,且差值为偶数

  • 如果 \(S\) 中全是 \(\texttt{A}\)\(T\) 中有 \(\texttt{B}\) 但后缀连续 \(\texttt{A}\) 的数量和 \(S\) 的长度相等则不行。

上文解法参考洛谷题解。