题目描述
译自 ROI 2019 Day2 T4. Поиск идеи
给出模式串 p,其长度为 m。又给出「压缩后的」文本串 t,试求 p 在 t 中出现的次数。两个字符串均只包含小写英文字母。
压缩后的 t 分为 n 个有顺序的块。块的类型及解压方式如下:
- 开始解压时 t 为空串。
- 1 w,其中 w 是一个字符串。在解压过程中,当读取到这一块时,将 w 放在 t 的末尾。
- 2 pos len,将 tpos 复制到 t 的末尾,再将 tpos+1 复制到 t 的末尾……共复制 len 个字符。比如,如果 t=aba,当前块为 2 1 7,则 t 会变为 abaabaabaa。
输入格式
m,n
p
接下来 n 行,每行一个块
3 4
aba
1 ab
2 1 3
2 3 3
2 1 8
6
数据范围与提示
用 Li 表示读取第 i 块后 t 的长度。
如果第 i 个块属于第二类块,我们用 posi 和 leni 特指这个块的 pos 和 len。
子任务 # |
分值 |
m⩽ |
n⩽ |
Ln⩽ |
额外条件 |
1 |
6 |
2000 |
=1 |
1000 |
|
2 |
10 |
105 |
2000 |
106 |
3 |
10 |
2000 |
1010 |
对于任意一个第二类块, posi=1,leni 是 L1 的因数 |
4 |
10 |
posi=Li−1 |
5 |
10 |
20 |
posi=1,leni⩽107 |
6 |
4 |
2000 |
7 |
10 |
20 |
20 |
文本串里只包含 a posi+leni−1⩽Li–1 |
8 |
6 |
posi+leni−1⩽Li–1 |
9 |
2 |
=1 |
2000 |
文本串里只包含 a |
10 |
4 |
20 |
11 |
5 |
|
12 |
14 |
105 |
13 |
9 |
2×105 |
104 |
1015 |
对于所有子任务,保证 ∑∣wi∣≤2×105。