【学习笔记】border与period

其实只是抄抄博客啦

弱周期定理

1.1 1.1 1.1 p p p q q q s s s的周期, p + q ≤ ∣ s ∣ p+q\le |s| p+qs,则 gcd ⁡ ( p , q ) \gcd(p,q) gcd(p,q)也为 s s s的周期

证明:
不妨设 p < q p<q p<q,记 d = q − p d=q-p d=qp
由于 p + q ≤ ∣ s ∣ p+q\le |s| p+qs,对于 ∀ i ∈ [ 1 , ∣ s ∣ − d ] , i − p ≥ 1 ∨ i + q ≤ n \forall i\in [1,|s|-d],i-p\ge 1\lor i+q\le n i[1,sd],ip1i+qn
若前者成立, s i = s i − p = s i − p + q = s i + d s_i=s_{i-p}=s_{i-p+q}=s_{i+d} si=sip=sip+q=si+d
若后者成立, s i = s i + q = s i + q − p = s i + d s_i=s_{i+q}=s_{i+q-p}=s_{i+d} si=si+q=si+qp=si+d
d d d s s s的周期
显然最终可以得到 gcd ⁡ ( p , q ) \gcd(p,q) gcd(p,q) s s s的周期

border的结构

1.2 1.2 1.2 2 ∣ S ∣ ≥ ∣ T ∣ 2|S|\ge |T| 2∣ST,则 S S S T T T中的匹配位置必为等差数列。

证明:
先将 T T T中没有被 S S S覆盖的部分去掉
考虑匹配为大于 2 2 2的情况
S S S T T T中第一二次的匹配位差为 d d d,第二次与后面的某一次匹配位差为 q q q,那么 d , q d,q d,q均为 S S S的周期,并且 d + q ≤ ∣ S ∣ d+q\le |S| d+qS,根据弱周期定理 r = gcd ⁡ ( d , q ) r=\gcd(d,q) r=gcd(d,q) S S S的周期,设 S S S的最小周期为 p p p,那么 p ∣ r p|r pr(否则可以使用WPL构造更小的周期)。此时 p ∣ r ∣ d p|r|d prd
在这里插入图片描述

p < d p<d p<d,由于 p p p S S S的循环,因此可以找到一个距离第一匹配位更近的匹配位,与 d d d的定义矛盾

在这里插入图片描述
因此只有可能 p = r = d p=r=d p=r=d,并且 d ∣ q d|q dq,所以匹配位在处理后的 T T T上,每 d d d出现一次,匹配位就是公差为 d d d的等差数列了。

1.3 1.3 1.3 字符串 s s s所有不小于 ∣ s ∣ 2 \frac{|s|}{2} 2s border \text{border} border构成一个等差数列

s s s最大的 border \text{border} border n − p ( p ≤ ∣ s ∣ 2 ) n-p(p\le \frac{|s|}{2}) np(p2s),另一个 border \text{border} border n − q ( q ≤ ∣ s ∣ 2 ) n-q(q\le \frac{|s|}{2}) nq(q2s)
因为 p p p, q q q s s s的周期,所以 gcd ⁡ ( p , q ) \gcd(p,q) gcd(p,q) s s s的周期
所以 n − gcd ⁡ ( p , q ) n-\gcd(p,q) ngcd(p,q) s s s border \text{border} border
所以 p ∣ q p|q pq
又因为 p p p s s s的周期,所以 s s s的长相可以画出来
s s s所有不小于 ∣ s ∣ 2 \frac{|s|}{2} 2s border \text{border} border构成一个等差数列,公差为 p p p

1.4 1.4 1.4 推论:字符串 s s s的所有 border \text{border} border长度排序后可分成 O ( log ⁡ ∣ s ∣ ) O(\log |s|) O(logs)段,每段是一个等差数列

s s s border \text{border} border按长度 x x x分成 log ⁡ ∣ s ∣ \log|s| logs类,记 2 k 2^k 2k为最大不超过 n n n 2 2 2的次幂
x ∈ [ 1 , 2 ) , [ 2 , 4 ) , . . . , [ 2 k − 1 , 2 k ) , [ 2 k , n ) x\in [1,2),[2,4),...,[2^{k-1},2^k),[2^k,n) x[1,2),[2,4),...,[2k1,2k),[2k,n)
对于 x ∈ [ 2 k , n ) x\in [2^k,n) x[2k,n),显然 2 k ≥ n 2 2^k\ge \frac{n}{2} 2k2n,那么该段构成一个等差数列
对于 x ∈ [ 2 i − 1 , 2 i ) x\in [2^{i-1},2^i) x[2i1,2i),考虑一个巧妙的构造
直接放图吧应该看得懂233
在这里插入图片描述
两个公差为d1,d2的数列求交过后公差应该是lcm(d1,d2)吧

然后就可以切掉 Mivik 的标题 了。


__EOF__

本文作者仰望星空的蚂蚁
本文链接https://www.cnblogs.com/cqbzly/p/17530111.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   仰望星空的蚂蚁  阅读(19)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
历史上的今天:
2021-07-26 【题解】CF1553
2021-07-26 【题解】ARC 124
点击右上角即可分享
微信分享提示