#L3194. 「ROI 2019 Day2」模式串查找

    ID: 5795 传统题 5000ms 1024MiB 尝试: 5 已通过: 1 难度: 10 上传者: 标签>字符串数据结构模拟组合数学

「ROI 2019 Day2」模式串查找

题目描述
译自 ROI 2019 Day2 T4. Поиск идеи

给出模式串 pp,其长度为 mm。又给出「压缩后的」文本串 tt,试求 pptt 中出现的次数。两个字符串均只包含小写英文字母。

压缩后的 tt 分为 nn 个有顺序的块。块的类型及解压方式如下:

开始解压时 tt 为空串。

  1. 1 w,其中 ww 是一个字符串。在解压过程中,当读取到这一块时,将 ww 放在 tt 的末尾。
  2. 2 pos len,将 tpost_{\mathrm{pos}} 复制到 tt 的末尾,再将 tpos+1t_{\mathrm{pos}+1} 复制到 tt 的末尾……共复制 len\mathrm{len} 个字符。比如,如果 t=abat=\texttt{aba},当前块为 2 1 7,则 tt 会变为 abaabaabaa\texttt{abaabaabaa}

输入格式
m,nm,n
pp
接下来 nn 行,每行一个块。


样例
输入

3 4
aba
1 ab
2 1 3
2 3 3
2 1 8

输出

6

开始:空串
读取第一块后:ab\texttt{ab}
读取第二块后:ababa\texttt{ababa}
读取第三块后:ababaaba\texttt{ababaaba}
读取第四块后:ababaabaababaaba\texttt{ababaabaababaaba}

$$\begin{array}{c} \texttt{ababaabaababaaba}\\ \underline{\texttt{aba}}\ \ \texttt{aba}\ \ \texttt{aba}\ \ \ \ \\ \ \ \texttt{aba}\ \ \ \texttt{aba}\ \ \texttt{aba} \end{array} $$

数据范围与提示
LiL_i 表示读取第 ii 块后 tt 的长度。
如果第 ii 个块属于第二类块,我们用 posi\mathrm{pos}_ileni\mathrm{len}_i 特指这个块的 pos\mathrm{pos}len\mathrm{len}

对于所有子任务,保证 wi2×105\sum |w_i|\le 2\times 10^5