P13428 [GCJ 2009 Qualification] Alien Language
题目描述
经过多年的研究,Google Labs 的科学家们发现了一种来自遥远星球的外星语言。这种外星语言非常独特,每个单词恰好由 $L$ 个小写字母组成。此外,这种语言中恰好有 $D$ 个单词。
在建立了该外星语言所有单词的字典后,科学家们的下一个重大突破是发现,外星人在过去十年间一直在向地球发送信息。不幸的是,由于两颗星球之间的距离遥远,这些信号在传输过程中被削弱,导致部分单词可能被误解。为了帮助科学家们解读这些信息,他们请你设计一个算法,能够判断给定模式下可能的解释数量。
一个模式恰好由 $L$ 个**符号**组成。每个符号要么是一个小写字母(科学家们非常确定这就是那个字母),要么是由圆括号括起来的一组互不相同的小写字母。例如:(ab)d(dc) 表示第一个字母可以是 a 或 b,第二个字母一定是 d,第三个字母可以是 d 或 c。因此,模式 (ab)d(dc) 可能代表以下 4 种情况之一:add、adc、bdd、bdc。
输入格式
输入的第一行包含 3 个整数 $L$、$D$ 和 $N$,以空格分隔。接下来的 $D$ 行,每行一个长度为 $L$ 的单词,表示该外星语言已知的单词。所有已知单词保证互不相同。接下来有 $N$ 个测试用例,每个测试用例一行,均为如上描述的模式。
输出格式
对于每个测试用例,输出
Case #$X$: $K$
其中 $X$ 表示测试用例编号(从 1 开始),$K$ 表示有多少个外星语言中的单词与该模式匹配。
说明/提示
**限制条件**
**小数据集(10 分)**
- $1 \leq L \leq 10$
- $1 \leq D \leq 25$
- $1 \leq N \leq 10$
**大数据集(23 分)**
- $1 \leq L \leq 15$
- $1 \leq D \leq 5000$
- $1 \leq N \leq 500$
翻译由 ChatGPT-4.1 完成。