A11163 | Vasya and Shifts
时间限制1s
内存限制256MB
通过 / 提交0/0
题目描述
Vasya has a set of $4n$ strings of equal length, consisting of lowercase English letters "a", "b", "c", "d" and "e". Moreover, the set is split into $n$ groups of $4$ equal strings each. Vasya also has one special string $a$ of the same length, consisting of letters "a" only.
Vasya wants to obtain from string $a$ some fixed string $b$ , in order to do this, he can use the strings from his set in any order. When he uses some string $x$ , each of the letters in string $a$ replaces with the next letter in alphabet as many times as the alphabet position, counting from zero, of the corresponding letter in string $x$ . Within this process the next letter in alphabet after "e" is "a".
For example, if some letter in $a$ equals "b", and the letter on the same position in $x$ equals "c", then the letter in $a$ becomes equal "d", because "c" is the second alphabet letter, counting from zero. If some letter in $a$ equals "e", and on the same position in $x$ is "d", then the letter in $a$ becomes "c". For example, if the string $a$ equals "abcde", and string $x$ equals "baddc", then $a$ becomes "bbabb".
A used string disappears, but Vasya can use equal strings several times.
Vasya wants to know for $q$ given strings $b$ , how many ways there are to obtain from the string $a$ string $b$ using the given set of $4n$ strings? Two ways are different if the number of strings used from some group of $4$ strings is different. Help Vasya compute the answers for these questions modulo $10^{9}+7$ .
Vasya wants to obtain from string $a$ some fixed string $b$ , in order to do this, he can use the strings from his set in any order. When he uses some string $x$ , each of the letters in string $a$ replaces with the next letter in alphabet as many times as the alphabet position, counting from zero, of the corresponding letter in string $x$ . Within this process the next letter in alphabet after "e" is "a".
For example, if some letter in $a$ equals "b", and the letter on the same position in $x$ equals "c", then the letter in $a$ becomes equal "d", because "c" is the second alphabet letter, counting from zero. If some letter in $a$ equals "e", and on the same position in $x$ is "d", then the letter in $a$ becomes "c". For example, if the string $a$ equals "abcde", and string $x$ equals "baddc", then $a$ becomes "bbabb".
A used string disappears, but Vasya can use equal strings several times.
Vasya wants to know for $q$ given strings $b$ , how many ways there are to obtain from the string $a$ string $b$ using the given set of $4n$ strings? Two ways are different if the number of strings used from some group of $4$ strings is different. Help Vasya compute the answers for these questions modulo $10^{9}+7$ .
输入格式
The first line contains two integers $n$ and $m$ ( $1<=n,m<=500$ ) — the number of groups of four strings in the set, and the length of all strings.
Each of the next $n$ lines contains a string $s$ of length $m$ , consisting of lowercase English letters "a", "b", "c", "d" and "e". This means that there is a group of four strings equal to $s$ .
The next line contains single integer $q$ ( $1<=q<=300$ ) — the number of strings $b$ Vasya is interested in.
Each of the next $q$ strings contains a string $b$ of length $m$ , consisting of lowercase English letters "a", "b", "c", "d" and "e" — a string Vasya is interested in.
Each of the next $n$ lines contains a string $s$ of length $m$ , consisting of lowercase English letters "a", "b", "c", "d" and "e". This means that there is a group of four strings equal to $s$ .
The next line contains single integer $q$ ( $1<=q<=300$ ) — the number of strings $b$ Vasya is interested in.
Each of the next $q$ strings contains a string $b$ of length $m$ , consisting of lowercase English letters "a", "b", "c", "d" and "e" — a string Vasya is interested in.
输出格式
For each string Vasya is interested in print the number of ways to obtain it from string $a$ , modulo $10^{9}+7$ .
输入输出样例
输入 #1
1 1 b 2 a e
输出 #1
1 1
输入 #2
2 4 aaaa bbbb 1 cccc
输出 #2
5
In the first example, we have $4$ strings "b". Then we have the only way for each string $b$ : select $0$ strings "b" to get "a" and select $4$ strings "b" to get "e", respectively. So, we have $1$ way for each request.
In the second example, note that the choice of the string "aaaa" does not change anything, that is we can choose any amount of it (from $0$ to $4$ , it's $5$ different ways) and we have to select the line "bbbb" $2$ times, since other variants do not fit. We get that we have $5$ ways for the request.
In the second example, note that the choice of the string "aaaa" does not change anything, that is we can choose any amount of it (from $0$ to $4$ , it's $5$ different ways) and we have to select the line "bbbb" $2$ times, since other variants do not fit. We get that we have $5$ ways for the request.
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?
提交通过
评测结果:Accepted