Description
给定长度为 n−1 的字符串 s,对于一个长度为 n 的非负整数序列 a,定义其生成序列 b 为:
- b1=a1;
- 对于 i>1:
- 若 si−1=A,则 bi=bi−1 and ai。
- 若 si−1=O,则 bi=bi−1 or ai。
- 若 si−1=X,则 bi=bi−1 xor ai。
给定非负整数 k。接下来 q 组询问,每次给定一个 m,求有多少长度为 n 的整数序列 c 满足:
- 对于 1≤i≤n,满足 0≤ci<2k。
- 存在至少一个长度为 n 的整数序列 a 满足:
- 对于 1≤i≤n,满足 0≤ai≤ci。
- 对于 a 的生成序列 b,满足 bn=m。
由于答案很大,你只需要输出答案对 232 取模的结果。
第一行三个整数 n,k,q。
第二行一个长度为 n−1 的字符串 s。
接下来 q 行,每行一个询问的 m。
输出 q 行,每行一个非负整数,表示答案对 232 取模的结果。
3 1 2
OA
0
1
8
3
4 2 2
XOA
1
2
189
112
4 2 3
XAO
1
2
3
237
176
143
10 10 3
AOOXOAOXA
749
666
135
4239261913
1948492800
2799056799
Hint
本题使用捆绑测试,你只有通过一个子任务的所有测试点,才能获得这个子任务的分数。
| 子任务编号 |
n≤ |
k≤ |
q≤ |
特殊性质 |
分值 |
| 1 |
4 |
5 |
200 |
无 |
10 |
| 2 |
20 |
8 |
20 |
| 3 |
200 |
16 |
1 |
| 4 |
200 |
| 5 |
30 |
1 |
popcount(m)≤16 |
| 6 |
1000 |
1000 |
s 不包含 A |
| 7 |
50 |
50 |
无 |
| 8 |
1000 |
1 |
| 9 |
200 |
200 |
| 10 |
1000 |
1000 |
对于 100% 的数据,2≤n≤1000,1≤q≤1000,1≤k≤30,0≤m<2k。