#P11087. [ROI 2019] 考古 (Day 2)

[ROI 2019] 考古 (Day 2)

Description

考古学家们决定统计一个算法在 ROI 中考察的次数。为此,他们构建了一个由小写英文字母组成的字符串 pp,并希望找出这个字符串在解压缩后的字符串 tt 中的出现次数。

如果长度为 mm 的字符串 pp 作为子串从位置 ii 开始出现,那么从第 ii 个字符开始的连续 mm 个字符串将是字符串 pp。例如,字符串 aba 在字符串 ababaaba 中作为子串出现三次,分别从第 1,3,61,3,6 个字符开始。

请编写一个程序,确定给定字符串 pp 在解压缩后的字符串 tt 中出现的次数。

Input Format

第一行包含两个自然数 mmnn,分别表示字符串 pp 的长度和压缩文本中的块数。

第二行包含一个非空字符串 pp,由小写英文字母组成。

接下来的 nn 行,包含按照题目背景的格式给出的块的描述。

Output Format

输出一个整数,表示字符串 pp 在文本中出现的次数。

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

Hint

样例解释:

tt 的解压缩过程是这样的:

abaababaabaababaaba 中出现了 66 次。

数据范围:

设将前 ii 块解压缩后字符串的长度为 LiL_i,第 ii 块的类型为 typeitype_i

子任务 分值 mm\le nn\le LnL_n\le 其它特殊性质
11 66 20002000 11 10001000
22 1010 10510^5 20002000 10610^6
33 20002000 101010^{10} i>1,typei=2,posi=1,L1leni\forall i>1,type_i=2,pos_i=1,L_1\mid len_i
44 posi=Li1pos_i=L_{i-1}
55 2020 posi=1,leni107pos_i=1,len_i\le10^7
66 44 20002000
77 1010 2020 pp 只含字母 aposi+leni1Li1pos_i+len_i-1\le L_{i-1}
88 66 posi+leni1Li1pos_i+len_i-1\le L_{i-1}
99 22 11 20002000 pp 只含字母 a
1010 44 2020
1111 55
1212 1414 10510^5
1313 99 2×1052\times10^5 1000010000 101510^{15}

对于 100%100\% 的数据,w2×105\sum w\leq 2\times 10^5