算法 {循环节}
定义
循环节;
长度为N的字符串S, 如果形如T...T
(令T的长度为x, 则一共有N/x
的T), 则S称为 循环节字符串, T为S的长度为x
的循环节;
@DELI;
最小循环节;
由循环节s组成的字符串S= s...s
, 如果s
的循环节 只有自身, 则s
称为S的最小循环节;
性质
任何字符串, 有若干的循环节;
比如111111
, 他的循环节: [1], [11], [111]
;
任意循环节的长度, 一定是字符串长度N的 约数;
令其所有循环节的长度为x1,x2,...
, 则x1
称为 其最小循环节;
且一定有:
x
1
∣
x
i
x1 | xi
x1∣xi (即, 令mi
为最小循环节, 则对于任意循环节s
, mi
一定是s
的(最小)循环节)
即, 对于循环节为s 的字符串S= s...s
, S的最小循环节 等于 s
的最小循环节;
任意两个字符串相同 ⟺ \iff ⟺ 这两个字符串的最小循环节相同;
@DELI;
循环节为a 所组成的字符串A= a...a
, 循环节为b的字符串B= b...b
;
如果A,B
的长度相同, 则A=B
⟺
\iff
⟺ A,B
的最小循环节相同;
@DELI;
任何字符串, 一定存在循环节 (即他本身);
应用
满足泛型字符串的 循环节字符串个数: LINK: https://editor.csdn.net/md/?not_checkout=1&articleId=131050440
;