后缀自动机 初学

首先膜拜clj的ppt,记录几个要点

关于Right集合:

    1.定义:一个子串str在母串S中所有出现位置的右端点。如子串str在S中出现位置为[l1,r1),[l2,r2),...,[ln,r3),则str的Right集合为{r1..rn}。会有一些子串的Right集合相同,其中最长的len为MAX(s),最短的为MIN(s)

    2.性质1:给定Right(s)和len就可得出串

    3.性质2:关于相交。如果Ra和Rb相交且不相等,那么Ra和Rb表示的子串一定不相交,否则两者的Right集合一定相同,不符合假设。那么设MAX(a)<MIN(b)。设r既在Ra中也在Rb中,那么必然a的子串都是b的子串的后缀。因此b出现的地方a一定出现,a出现的地方可能就没有b的位置了。所以Rb∈Ra。这个clj是不是讲错了?%>_<%

关于Parent树:

    1.x为s的父亲节点当且仅当Right(s)∈Right(x)且Right(x)最小。可以证明MAX(x)=MIN(s)。我们发现parent树是树形结构而且父节点至少有两个子节点然后就可以证明点是O(N)的了好像。。?

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值