SP108 MORSE - Decoding Morse Sequences
题目描述
从前有一种“二进制”代码,叫摩尔斯电码,在这种电码里面有两种符号,为短脉冲(用“.”表示)和长脉冲(用“-”表示),26 个字符对应的编码如下表:
```
A .- B -... C -.-. D -..
E . F ..-. G --. H ....
I .. J .--- K -.- L .-..
M -- N -. O --- P .--.
Q --.- R .-. S ... T -
U ..- V ...- W .-- X -..-
Y -.-- Z --..
```
但是,同一种摩尔斯编码可能有多种解释,比如-.-..-可以解释为 CAT 和 NXT 。
你现在要完成如下任务:
读取一个摩尔斯序列和一本“字典”。
计算出仅用“字典”中的单词时,这个摩尔斯序列会有多少种解码方式。
输入格式
第一行一个整数 $d$ ,表示数据的数量。
每组数据第一行包含一个字符串,即摩尔斯序列。
然后有一行一个整数 $n$ ,表示“字典”里所包含的单词数。
接下来 $n$ 行,每行一个字符串,表示字典里面的一个单词
输出格式
输出 $d$ 行,每行一个整数,第 $i$ 个整数表示第 $i$ 组测试数据里面有多少种解码方式。
### 数据规模
$1 \le d \le 20$ , $1 \le $摩尔斯电码的长度$ \le 10^4$ , $1 \le n \le 10^4$ , $1 \le $每个单词的长度$ \le 20$ ,且每个单词中只有 26 个大写字母 , 所求答案$ \le 2 \times 10^9$ 。