众所周知 SAM 状态数和操作次数都是线性的,时空复杂度的瓶颈在对于状态查找字符是 c 的出边上。
c
所以有这样一个问题,总值域大小是 ∣Σ∣|\Sigma|∣Σ∣ 的,有 Θ(n)\Theta(n)Θ(n) 次操作:
给定 x′x'x′ 求这个键在结点 uuu 上是否存在,如果存在返回这个键对应的值。
在结点 uuu 上插入一个键值对 (x, y)(x,\,y)(x,y),保证每次插入的键不同。
在 ∣Σ∣=26|\Sigma| = 26∣Σ∣=26,∣Σ∣=128|\Sigma| = 128∣Σ∣=128 和 ∣Σ∣=Θ(n)|\Sigma| = \Theta(n)∣Σ∣=Θ(n) 时分别有什么优秀的解法吗。