A94827.字符串大师
提高+/省选-
通过率:0%
时间限制:1.00s
内存限制:1024MB
题目描述
小明最近迷上了字符串研究。某天,他得到了两个由小写英文字母组成的非空字符串 S 和 T。
作为一名充满好奇心的字符串大师,小明立刻提出了一个有趣的问题:
有多少对字符串 (x,y) 满足以下所有条件?
- x 是字符串 S 的一个子串(Substring)。
- y 是字符串 T 的一个子序列(Subsequence)。
- x 和 y 的内容完全相同。
关于“不同”的定义:
- 对于 S 的两个子串 S[a…b] 和 S[c…d],只要下标区间 [a,b]=[c,d],即使它们的内容相同,也视为不同的子串。
- 对于 T 的两个子序列,只要它们选取的字符在 T 中的原始下标集合不同,即使拼接后的内容相同,也视为不同的子序列。
请你帮助小明计算满足条件的对 (x,y) 的数量。由于答案可能非常大,请输出对 109+7 取模后的结果。
输入格式
输入包含两行。
第一行包含一个字符串 S (1≤∣S∣≤5000)。
第二行包含一个字符串 T (1≤∣T∣≤5000)。
两个字符串均仅包含小写英文字母。
输出格式
输出一个整数,表示满足条件的对 (x,y) 的数量模 109+7 的结果。
输入输出样例
输入#1
aa aa
输出#1
5
输入#2
codeforces forceofcode
输出#2
60
说明/提示
提示
样例 1 解释
S="aa",T="aa"。
满足条件的配对 (x,y) 如下(下标从 1 开始):
- x=S[1…1] ("a"), y=T[1] ("a")
- x=S[2…2] ("a"), y=T[1] ("a")
- x=S[1…1] ("a"), y=T[2] ("a")
- x=S[2…2] ("a"), y=T[2] ("a")
- x=S[1…2] ("aa"), y=T[1,2] ("aa")
共 5 对。
数据范围
- 对于 100% 的数据:1≤∣S∣,∣T∣≤5000。