SAM 后缀自动机
作者:互联网
这玩意还真的好玄学,看了半天,也就看了个大概吧
确实很妙
总算理解了parent树,但是关于SAM的DAG的性质的证明并没有看太懂,也没有特别明白。。。
update:又看了一会,原来是自己把定义搞错了,后缀自动机其实是在满足以下条件的最简状态,主要是难构造,掌握构造代码就好了,证明就不管了c。
条件如下:(摘自KesdiaelKen的blog《史上最通俗的后缀自动机详解》)
1.有一个源点,若干个终止点。边代表在目前的字符串后加上的字母。从源点到任意一个节点的任意路径可以形成一个字符串。
2.从源点到任意节点的任意路径形成的字符串均为原串子串。从源点到任意节点的任意路径不能形成的字符串均不为原串子串。(简单来说,这个图可以表示,且仅可以表示出原串的所有子串)
3.从源点到任意终止节点的任意路径形成的字符串均为原串后缀。
4.从源点出发的任意两条不同路径形成的字符串不相同。
不过主要就是记一下结论吧
在SAM上,从源点跑到任意一个点的一条路径都是一个子串,不重,且所有路径形成子串的并集就是原串子串集。
也一定要理解parent 树
标签:子串,路径,SAM,后缀,源点,原串,字符串,自动机,任意 来源: https://www.cnblogs.com/Ing1024/p/14493901.html