300iq contest1 K.Knowledge

复制标题的时候才发现这一场题目首字母和编号相同诶

题目链接

Description

给出一个字符串 \(s\),每次可以在任意位置增删aabbbababab,问能形成多少种不同的长度为 \(L\) 的串。

Solution

又是手建自动机的神仙题!

这个操作显然是可逆的,故考虑把每个串表示成等价的最短的串。

手玩一下,发现只有 \(12\) 种本质不同的最短的串。

然后手玩一下这些转移,只有 \(24\) 种很快就出来了。

\[\begin{align*} \emptyset\stackrel a{\longrightarrow}a & & \emptyset\stackrel b{\longrightarrow}b \\ a\stackrel a{\longrightarrow}\emptyset & & a\stackrel b{\longrightarrow}ab \\ b\stackrel a{\longrightarrow}ba & & b\stackrel b{\longrightarrow}bb \\ ab\stackrel a{\longrightarrow}aba & & ab\stackrel b{\longrightarrow}abb \\ ba\stackrel a{\longrightarrow}b & & ba\stackrel b{\longrightarrow}bab \\ bb\stackrel a{\longrightarrow}bba & & bb\stackrel b{\longrightarrow}\emptyset \\ aba\stackrel a{\longrightarrow}ab & & aba\stackrel b{\longrightarrow}bba \\ abb\stackrel a{\longrightarrow}bab & & abb\stackrel b{\longrightarrow}a \\ bab\stackrel a{\longrightarrow}abb & & bab\stackrel b{\longrightarrow}babb \\ bba\stackrel a{\longrightarrow}bb & & bba\stackrel b{\longrightarrow}bbab \\ babb\stackrel a{\longrightarrow}bbab & & babb\stackrel b{\longrightarrow}ba \\ bbab\stackrel a{\longrightarrow}babb & & bbab\stackrel b{\longrightarrow}aba \\ \end{align*} \]

弄出这个以后转移用矩阵加速就可以了。

SV:你看这只是一个正四面体的旋转群(\(12\) 阶),下次我出一个正二十面体的旋转群(\(60\) 阶)看你怎么手模(毒瘤!)。

posted @ 2020-10-29 22:23  realSpongeBob  阅读(93)  评论(0编辑  收藏  举报