Border 理论随记

下文若不特别说明下标从 \(1\) 开始。

一. 定义

对于字符串 \(S\),若有 \(0 \le p < |S|\)\(S[1 .. p] = S[|S| - p + 1 .. |S|]\),则称 \(S[1 .. p]\)\(S\) 的 border。

对于字符串 \(S\),若有 \(0 < p \le |S|\)\(\forall 1 \le i \le |S| - p\)\(S[i] = S[i + p]\),则称 \(p\)\(S\) 的周期。

对于字符串 \(S\),若周期 \(p\) 满足 \(p \mid |S|\),则称周期 \(p\)\(S\) 的整周期。

对于字符串 \(S, T\),若存在 \(1 \le p \le |T| - |S| + 1\),满足 \(T[p .. p + |S| - 1] = S\),则称 \(p\)\(S\)\(T\) 中的一个匹配位置。

二. 基本定理

1. 对于字符串 \(S\),若 \(T\) 为其 border,则 \(|S| - |T|\) 为其周期。

2. 对于字符串 \(S\),若 \(p\) 为其周期,则 \(S[1 .. |S| - p]\) 为其 border。

3. 对于字符串 \(S\),若有 border \(S[1 .. p],S[1 .. q]\) 满足 \(p < q\),则 \(S[1 .. p]\)\(S[1 .. q]\) 的 border。

4. 对于字符串 \(S\),若其 border \(S[1 .. q]\) 有 border \(S[1 .. p]\),则 \(S[1 .. p]\)\(S\) 的 border。

5. 对于字符串 \(S\),对于其周期 \(p\),若有 \(k\) 满足 \(kp \le |S|\),则 \(kp\)\(S\) 的周期。

6. 对于字符串 \(S\),若其有周期 \(p,q\),且 \(p + q - \gcd(p, q) \le |S|\),则 \(\gcd(p, q)\) 也为 \(S\) 的周期。(Periodicity Lemma, PL)

证明:考虑 \(S\) 中模 \(p\) 意义下相等的位置字符必定相等。考虑模 \(p\) 意义下的所有剩余类,周期 \(q\) 本质上是对于所有 \(i\),在 \(i\)\(i + q\) 所在的剩余类间连边,表示这两个剩余类的中每个位置的字符相等。容易发现若 \(|S| \ge p + q\),最终会连出 \(\gcd(p, q)\) 个长为 \(\frac{p}{\gcd(p, q)}\) 的环,每个环表示模 \(\gcd(p, q)\) 下的一个剩余类,即说明 \(S\)\(\gcd(p, q)\) 的周期。发现环去掉一条边不影响连通性,即最后的 \(\gcd(p, q)\) 条边并不影响结论,所以当 \(|S| \ge p + q - \gcd(p, q)\) 时,\(S\) 有长为 \(\gcd(p, q)\) 的周期。

三. Border 的等差数列性质

1. 对于字符串 \(S\),所有满足 \(p \le \frac{|S|}{2}\) 的周期 \(p\) 构成等差数列。

证明:找出满足条件的 \(p\) 中最小的周期 \(q\),试证明所有 \(p\) 都为 \(q\) 的倍数。考虑反证法,若有周期 \(x\) 满足 \(x \le \frac{|S|}{2}\)\(x\) 不为 \(q\) 的倍数,则根据 PL 有更小的周期 \(\gcd(q, x)\),矛盾。所以所有 \(p\) 构成首项为 \(q\),公差为 \(q\) 的等差数列。

2. 对于字符串 \(S\),所有 border 构成 \(O(\log |S|)\) 段等差数列。

证明:由 3.1,所有长度大于等于 \(\frac{|S|}{2}\) 的 border 构成一段等差数列。然后继续考察第一个长度小于 \(\frac{|S|}{2}\) 的 border,由 2.3,可以将其看作原串继续递归构造。此构造方法每次使字符串长度至少减半,所以共有 \(O(\log |S|)\) 段等差数列。、

四. 整周期

1. 对于字符串 \(S\),所有整周期都是最小整周期的倍数。

证明:考虑反证法。若存在一个整周期 \(q\) 非最小整周期 \(p\) 的倍数,易知 \(p,q\) 均不为 \(|S|\),所以 \(p, q \le \frac{|S|}{2}\)。因为 PL,必有更小的整周期 \(\gcd(p, q)\),矛盾。

2. 对于字符串 \(S\),若其最小整周期不为 \(|S|\),则最小整周期为最小周期。

证明:考虑反证法。易知最小整周期 \(p \le \frac{|S|}{2}\)。若存在周期 \(q < p\),则根据 PL 可知 \(\gcd(p, q)\) 为一更小的整周期,矛盾。

五. 回文 border

1. 对于回文串 \(S\),其回文真前缀与回文真后缀均为其 border。

2. 对于回文串 \(S\),其 border 均为回文串。

六、例题

1. [WC2016] 论战捆竹竿

2. [HNOI2019] JOJO

3. [POI2003] Tiles

4. [POI2005] SZA-Template

5. [POI2006] PAL-Palindromes

6. [POI2011] OKR-Periodicity

7. [POI2012] PRE-Prefixuffix

8. [POI2012] OKR-A Horrible Poem

posted @ 2023-02-09 18:31  JCY_std  阅读(257)  评论(1编辑  收藏  举报