luogu#P10694. [SNCPC2024] 双子序列

[SNCPC2024] 双子序列

题目描述

小 L 看到不喜欢的字符串就很难受!看到它作为子序列出现也是!

给定一个长字符串 SS 表示小 L 要阅读的文本,以及恰好两个短字符串 s1s_1s2s_2 表示小 L 不想看到的字符串,三个字符串均由小写字母组成。

小 L 很反感这两个字符串作为子序列在文本内同时出现,他认为,一个字符串 TT 的反感度为:s1s_1 作为 TT 的子序列的出现次数,和 s2s_2 作为 TT 的子序列的出现次数之积。

由于他要读 SS 的每个子串,所以现在需要你求出 SS 的所有子串的反感度值之和。由于答案可能过大,你只需要输出对 998244353998244353 取模的结果。

定义一个字符串 HHTT 的子串,当且仅当 HHTT 删除最前面的若干字符和最后面的若干字符获得(前缀后缀可以一个字符都不删除,也可以把整个串全删除得到空串)。

定义一个字符串 HHTT 的子序列,当且仅当 HHTT 删除若干字符后获得(可以一个字符都不删除,也可以全删除后得到空子序列)。

输入格式

输入包括三行,每行一个仅由小写字母组成的字符串。

第一行的字符串代表 SS,第二行代表 s1s_1,第三行代表 s2s_2。其中 1S1×1051\le |S|\le 1\times 10^51s1,s2201\le |s_1|,|s_2|\le 20

输出格式

输出一个整数代表求得的答案。

iccpcicpc
icpc
ccpc

133

提示

子串起始位置 子串终止位置 icpc 次数 ccpc 次数
1 5 2 1
6
7 4 2
8
9 11 9
2 5 0 1
6
7 2
8
9 1 9
3 3
4 1
5
6 0

在其余的子串内,两个字符串作为子序列的出现次数均为 00

答案为 $(2\times 1) \times 2 + (4\times 2) \times 2 + 11\times 9 + (0\times 1)\times 2 + (0\times 2)\times 2 + 1\times 9 + 1\times 3+ (1\times 1)\times 2 + 1\times 0=133$。