关于后缀自动机的一些理解

咕咕咕了好久的东西,以前只是粗糙的背个板子之类的,并未对parent树有什么深刻的理解

clj姐姐tql,这么神仙的东西是怎么想出来的啊

个人认为有以下几点是难以理解的:

一、right集合的定义:

  right集合就是指某一子串在原串当中出现的所有的位置的集合,也在某位大佬博客中叫做endpos集合;

二、right集合(endpos集合)相同的我们称为endpos等价类(重点理解)

三、对于任意两个endpos集合中,那么必然为其中一个为另一个的子串,或者两者绝无交集

四、endpos的等价类的数量为O(n)后缀自动的边数也是O(n)

五、我们在求parent树的时候其实是在对endpos的所有等价类进行分割操作,分割出的节点便是parent树上的节点

六、parent树跟后缀自动机节点相同,但是所应用的范围不同:

  parent树主要是来求每个节点的性质(或者说字符子串的性质)而SAM其本身主要用于直接跑字符串

  同时,我们可以感性的认为,parent树上的连边主要是由于在子串前加上某一字符,而后缀自动机是在某一子串后面加上字符

七、后缀自动机连边的时候,我们认为一个endpos等价类的后面加上一个字符其定然变成了另一个等价类,这样我们就可以来说明后缀自动

  机的连边是存在的;

至于构造原理和一些图的话推荐这位大佬博客:QAQ

 

转载于:https://www.cnblogs.com/Hale522520/p/11268410.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值