题目描述
你有l和
- 将r变成原来的
l+ 原来的r,这里的+ 表示将两个字符串连接起来 - 将l变成原来的
l
给定一个长度为m的匹配串
n≤109,m≤104,0<p≤109
分析
类似于斐波那契数的斐波那契串,名字是我随便取的。
考虑某轮操作完得到的新串S,有
那么S所包含的匹配串数(记为
其中C表示跨过
那么问题就变成如何求C。
实际上考虑匹配串长度只有
但是这里n很大。
考虑假如不存在
这里存在C了,但是当
于是我们先暴力算l和
那么这里只需要找到循环节,算出循环那么多次的转移矩阵,利用矩阵乘法求出Vln就可以了。
时间复杂度O(km+33logn),其中k是满足
空间复杂度O(m)