luogu P4762 [CERC2014]Virus synthesis (回文自动机)

Posted uid001

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了luogu P4762 [CERC2014]Virus synthesis (回文自动机)相关的知识,希望对你有一定的参考价值。

大意: 初始有一个空串, 操作(1)在开头或末尾添加一个字符. 操作(2)在开头或末尾添加该串的逆串. 求得到串$S$所需最少操作数.

 

显然最后一定是由某个偶回文通过添加字符得到的, 那么只需要求出所有偶回文的最少操作数即可.

结论: 偶回文最后一次进行翻倍操作一定最优.

证明考虑数学归纳, 对于长为$2$的回文串显然成立.

对长度$>2$的偶回文串$A$, 记最后一次翻倍得到的串$B$, $B$的一半为$C$. 

记$f(S)$为串$S$的最优值, 就有$f(B)=f(C)+1$.

考虑由$B$得到$A$的过程, 有$4$种情况:

$1.$ $A=B$, 那么结论成立.

$2.$ 同时在$B$的左端和右端添加字符. 那么$B$只能是由$A$去掉左右两端得到的串. 总操作数是$f(C)+3$, 在$C$一端添加一个字符再翻倍操作数为$f(C)+2$更优, 所以这种情况不成立.

$3.$ 全部在$B$的左端添加字符. 那么$B$只能是$A$的最长偶回文后缀, 总操作数就为$f(C)+|A|-|B|+1$. 而在$C$的左侧添加字符然后再翻倍的操作数为$f(C)+\frac|A|2-\frac|B|2+1$更优, 所以不成立.

$4.$ 全部在$B$的右端添加字符. 同情况$3.$

 

 

以上是关于luogu P4762 [CERC2014]Virus synthesis (回文自动机)的主要内容,如果未能解决你的问题,请参考以下文章

Luogu P3165 [CQOI2014]排序机械臂

[Cerc2014] Vocabulary

Cerc2014 Virus synthesis

bzoj4044 [Cerc2014] Virus synthesis

bzoj 3928: [Cerc2014] Outer space invaders

bzoj 4044: [Cerc2014] Virus synthesis回文自动机+dp