• 后缀自动机


    right集:SAM读入字符串 a 后能识别的后缀的集合, 这些后缀分别从{r1 , r2 , r3, ... rx}开始。

    后缀自动机的每个节点都是一个right集, 因为每个非叶子节点至少有两个儿子,所以我们可以知道parent树的总结点个数是O(n)的(大概为2倍)。

    parent树中的叶子节点的right集大小为 1,因为任何两个节点的right集要么是真包含,要么是相离,所以所有叶子节点都是相离的,

    那么我们可以通过统计parent树某个节点的子树中叶子个数来确定其Right集的大小

    统计字符串 a 在 s 中的出现次数:

    我们知道sam读入一个字符串 a, 会到达一个节点 stateA, 那么显然 stateA 的right集的大小即为答案。

    不同子串个数:

    即所有节点的 val(i) - val(fa(i)) 即可。因为对于一个节点映射出的子串,它们的长度是连续的,并且每个长度都唯一对应了一个子串。

  • 相关阅读:
    威尔逊置信区间
    mysql函数
    python操作mysql之pymysql
    oracle 表分区
    Python连接sqlserver数据库之pymssql
    python-subprocess
    python-shutil
    python+logging
    公钥加密-DES-RSA
    python-Web-flask-蓝图和单元测试
  • 原文地址:https://www.cnblogs.com/get-an-AC-everyday/p/6793131.html
Copyright © 2020-2023  润新知