/ Vijos / 题库 /

字符串分解

字符串分解

时间限制:0.5秒  内存限制:256M


【题目描述】

  给定一个含若干个单词的字典,如果字典中的一些单词通过串联组成了一个字符串 \(S\)(单词可以重复使用),那么认为字符串 \(S\) 可以分解为字典中的单词。例如:对于字典 { D, DR, RD, ED, RRE },则字符串 DRDRDEDRDDR 可以分解为字典中的单词,其中一种分解方法为:D_RD_RD_ED_RD_DR。

  现在请你编一个程序,输入字典中的单词和一个可以被字典分解的字符串 \(S\) ,请你求 \(S\) 有多少种分解方法?

【输入格式】

  第一行一个整数 \(N\),表示字典中包含的单词数目。
  第二行为 \(N\) 个单词,为字典中的单词,每个单词只包含大写字母,且长度不超过10,单词之间用空格分开。集合中的元素没有重复。
  第三行是大写字母组成的字符串 \(S\) ,长度为 1..200,000 之间。

【输出格式】

  输出一个整数,表示分解方案数模 \(10^9+7\) 的结果。

【输入输出样例】

 Input

5
D DR RD ED RRE
DRDRDEDRDDR

 Output

3

【样例说明】

  有下列三种分解方案:
  D_RD_RD_ED_RD_DR
  DR DR D ED RD DR
  DR D RD ED RD DR

【数据限制】

  对于 \(100\%\) 的数据满足:字典中的单词个数不超过200,字符串S的长度不超过200,000。。

【来源】

  Mr.he

信息

ID
3167
难度
9
分类
动态规划 点击显示
标签
(无)
递交数
1
已通过
1
通过率
100%
被复制
1
上传者