A94821.潜藏的指令
普及/提高-
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
特工小明截获了一段极长的加密信号字符串 S。情报部门告诉他,这段信号中隐藏着一个核心指令 T。
核心指令 T 是通过“伪装”的方式隐藏在 S 中的。具体来说,指令 T 的字符按顺序分散在 S 的各个位置(不需要连续,但必须保持前后相对顺序)。
例如:信号 S="babgbag",指令 T="bag"。
我们可以找到 5 种不同的方式从 S 中提取出 T(下标从 0 开始):
- S[0],S[1],S[4] ("babggag") -> "bag"
- S[0],S[1],S[6] ("babgbag") -> "bag"
- S[0],S[5],S[6] ("bagbag") -> "bag"
- S[2],S[3],S[4] ("babgag") -> "bag"
- S[2],S[3],S[6] ("babgbag") -> "bag"
为了评估情报的可靠性,小明需要计算出:在信号 S 中,总共有多少种不同的方式可以组成指令 T?
由于方案数可能非常巨大,请输出方案数对 109+7 取模后的结果。
输入格式
输入共两行。
第一行包含一个字符串 S(表示加密信号)。
第二行包含一个字符串 T(表示核心指令)。
输出格式
输出一个整数,表示 T 在 S 中作为子序列出现的次数对 1000000007 取模后的结果。
输入输出样例
输入#1
rabbbit rabbit
输出#1
3
输入#2
babgbag bag
输出#2
5
说明/提示
样例解释与数据范围
数据范围
- 对于 100% 的数据:
- S 和 T 仅由英文字母组成。
- 1≤∣T∣≤∣S∣≤1000。
- 答案需对 109+7 取模。
数据点分布:
- 测试点 1-5:∣S∣≤20
- 测试点 6-15:∣S∣≤100
- 测试点 16-25:∣S∣≤1000