序列自动机

序列自动机简介

序列自动机接受且仅接受一个字符串的所有子序列。

设这个字符串为 (s),字符集 (Sigma={0,1,dots,|Sigma|-1 })

序列自动机上有 (|s|+1) 个状态 (start,1dots |s|)。状态 (i) 可以表示以 (s_i) 为结尾的子序列。

转移 (delta(u,c) (cin Sigma))(u) 后下一个等于 (c) 的位置。

于是它形成了一个 DAG,且边数恰好为 ((|s|+1)|Sigma|)

如果一个状态的一种转移不存在,就把它连到一个不存在的状态,走到这个状态时就不能接受。

然后没了,结构比较简单。

Written by Alan_Zhao
原文地址:https://www.cnblogs.com/alan-zhao-2007/p/subseq-automaton.html