自动机

OI 中所说的「自动机」一般都指「确定有限状态自动机」。

自动机是 OI、计算机科学中被广泛使用的一个数学模型,其思想在许多字符串算法中都有涉及,因此推荐在学习一些字符串算法(KMPAC 自动机SAM)前先完成自动机的学习。学习自动机有助于理解上述算法。

OI 中常用的自动机

字典树

字典树 是大部分 OIer 接触到的第一个自动机,接受且仅接受指定的字符串集合中的元素。

转移函数就是 Trie 上的边,接受状态是将每个字符串插入到 Trie 时到达的那个状态。

KMP 自动机

KMP 算法 可以视作自动机,基于字符串  的 KMP 自动机接受且仅接受以  为后缀的字符串,其接受状态为 

转移函数:

AC 自动机

AC 自动机 接受且仅接受以指定的字符串集合中的某个元素为后缀的字符串。也就是 Trie + KMP。

显示 Gitment 评论