【学习笔记】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+q≤∣s∣,则 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=q−p
由于
p
+
q
≤
∣
s
∣
p+q\le |s|
p+q≤∣s∣,对于
∀
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,∣s∣−d],i−p≥1∨i+q≤n
若前者成立,
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=si−p=si−p+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+q−p=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∣S∣≥∣T∣,则 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+q≤∣S∣,根据弱周期定理
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
p∣r(否则可以使用WPL构造更小的周期)。此时
p
∣
r
∣
d
p|r|d
p∣r∣d。
若 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
d∣q,所以匹配位在处理后的
T
T
T上,每
d
d
d出现一次,匹配位就是公差为
d
d
d的等差数列了。
1.3 1.3 1.3 字符串 s s s所有不小于 ∣ s ∣ 2 \frac{|s|}{2} 2∣s∣的 border \text{border} border构成一个等差数列
设
s
s
s最大的
border
\text{border}
border为
n
−
p
(
p
≤
∣
s
∣
2
)
n-p(p\le \frac{|s|}{2})
n−p(p≤2∣s∣),另一个
border
\text{border}
border为
n
−
q
(
q
≤
∣
s
∣
2
)
n-q(q\le \frac{|s|}{2})
n−q(q≤2∣s∣)
因为
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)
n−gcd(p,q)是
s
s
s的
border
\text{border}
border
所以
p
∣
q
p|q
p∣q
又因为
p
p
p是
s
s
s的周期,所以
s
s
s的长相可以画出来
故
s
s
s所有不小于
∣
s
∣
2
\frac{|s|}{2}
2∣s∣的
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(log∣s∣)段,每段是一个等差数列
将
s
s
s的
border
\text{border}
border按长度
x
x
x分成
log
∣
s
∣
\log|s|
log∣s∣类,记
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),...,[2k−1,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}
2k≥2n,那么该段构成一个等差数列
对于
x
∈
[
2
i
−
1
,
2
i
)
x\in [2^{i-1},2^i)
x∈[2i−1,2i),考虑一个巧妙的构造
直接放图吧应该看得懂233
两个公差为d1,d2的数列求交过后公差应该是lcm(d1,d2)吧
然后就可以切掉 Mivik 的标题 了。
__EOF__

本文链接:https://www.cnblogs.com/cqbzly/p/17530111.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
2021-07-26 【题解】CF1553
2021-07-26 【题解】ARC 124