Loading

序列自动机

序列自动机简介

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

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

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

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

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

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

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

posted @ 2021-05-13 19:30  Alan_Zhao_2007  阅读(91)  评论(0)    收藏  举报