• 后缀数组


    https://oiwiki.org/string/sa/

    性质 1:

    \(sa[rk[i]]=rk[sa[i]]\) 翻译一下,即记 i 的排名为 \(k\)\(sa[k]=i\),排名为 \(i\) 的后缀的排名为 \(i\)

    性质 2:

    $ \forall x\in [1,n],i\le x,j<i,LCP(sa[x],sa[i])>LCP(sa[x],sa[j])$

    即对于排名为 \(x\) 的后缀,离得越近,LCP 越大。

    考虑反证,即 \(LCA(sa[x],sa[i])<LCP(sa[x],sa[j])\),记左边项为 \(L\),不妨令右边为 \(L+1\),则 \(sa[j]:[1,L+1]=sa[x]:[1,L+1]\),因为 \(j<i\),所以显然有 \(sa[i]:[L+1]>sa[j]:[L+1],sa[i]:[L+1]<sa[x]:[L+1]\),显然只能取到空集。

    性质 3

    爷懒得写。。

  • 相关阅读:
    python-04
    python-03
    python-02
    python-01
    day4-RHCS
    python 之元组(tuple)
    11.21
    python之猜数小游戏
    python之简陋的数据库
    11.20
  • 原文地址:https://www.cnblogs.com/xugangfan/p/16657735.html
Copyright © 2020-2023  润新知