[Usaco2011 Feb]Cowlphabet 奶牛文字
约翰的奶牛讲的是别人听不懂的「牛语」。牛语使用的字母就是英文字母,有大小写之分。牛语中存在 个合法的词素,每个词素都由两个字母组成(是有序的字母对)。牛语的单词是由字母组成的序列,一个单词是有意义的充要条件是:任意相邻的两个字母都构成一个合法的词素。
约翰担心他的奶牛正在密谋反对他,于是最近一直在偷听它们的对话。可是,牛语太复杂了,他模模糊糊地只听到了一个单词,并确定了这个单词中有 个大写字母、 个小写字母。
现在他想知道,如果这个单词是有意义的,那么有多少种可能性呢?由于这个数字太大了,你只要输出答案对 取模的结果就可以了。
输入格式
第一行三个用空格隔开的整数 。
第 到第 行,第 行有两个字母(每个字母都可能是大写或小写),表示第 个词素,即牛语中一个合法的有序相邻字母对。没有两个词素是完全相同的。
输出格式
一行一个整数,表示符合条件的单词数量对 取模的结果。
样例输入
2 2 7
AB
ab
BA
ba
Aa
Bb
bB
样例输出
7
样例解释
约翰听到的单词有 个大写字母和 个小写字母,合法的相邻字母对为 AB、ab、BA、ba、Aa、Bb、bB。
可能的单词为 AabB、Abba、abBA、BAab、BbBb、bBAa、bBbB,共 个。
数据范围
- ,;
- ,且没有两个词素完全相同。
来源与许可
本题为 USACO 2011 Feb 试题「Cowlphabet 奶牛文字」,题面与测试数据整理自 BZOJ 2272。
样例 1
输入
2 2 7
AB
ab
BA
ba
Aa
Bb
bB
INPUT DETAILS:
The word Farmer John overheard had 2 uppercase and 2 lowercase
letters. The valid pairs of adjacent letters are AB, ab, BA, ba,
Aa, Bb and bB.
输出
7