CF1336C Kaavi and Magic Spell

题目描述

Kaavi 是一位神秘的占卜师,她坚信命运是不可避免且无法逃避的。当然,她以预测他人的未来为生。在进行占卜时,Kaavi 相信魔法咒语能够赋予她强大的力量来预见未来。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1336C/28f922a8d61b005da66667b890172094e2d89686.png) Kaavi 有一个长度为 $m$ 的字符串 $T$,所有以 $T$ 为前缀的字符串都是魔法咒语。Kaavi 还有一个长度为 $n$ 的字符串 $S$ 和一个空字符串 $A$。 在占卜过程中,Kaavi 需要执行一系列操作。有两种不同的操作: - 删除 $S$ 的第一个字符,并将其添加到 $A$ 的开头。 - 删除 $S$ 的第一个字符,并将其添加到 $A$ 的末尾。 Kaavi 最多可以执行 $n$ 次操作。为了完成占卜,她想知道有多少种不同的操作序列可以使 $A$ 成为一个魔法咒语(即以 $T$ 为前缀)。作为她的助手,你能帮她计算吗?答案可能很大,所以 Kaavi 只需要知道答案对 $998\,244\,353$ 取模后的结果。 如果两个操作序列长度不同,或者存在某个 $i$ 使得它们的第 $i$ 次操作不同,则认为这两个操作序列不同。 子串是字符串中连续的一段字符。一个字符串 $S$ 的前缀是 $S$ 开头的一个子串。

输入格式

第一行包含一个长度为 $n$ 的字符串 $S$($1 \leq n \leq 3000$)。 第二行包含一个长度为 $m$ 的字符串 $T$($1 \leq m \leq n$)。 两个字符串均只包含小写拉丁字母。

输出格式

输出一个整数,表示答案对 $998\,244\,353$ 取模后的结果。

说明/提示

第一个测试样例: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1336C/fc1e4ff58b9c787fb84f7835d5e964b3b486f03c.png) 红色部分是魔法咒语。在第一次操作时,Kaavi 可以选择将第一个字符 "a" 添加到 $A$ 的开头或末尾,尽管结果相同,但它们被视为不同的操作。因此答案是 $6\times2=12$。 由 ChatGPT 4.1 翻译