QOJ.ac

QOJ

Time Limit: 25 s Memory Limit: 1024 MB Total points: 10

#8415. 硬币 [A]

Statistics

Natalia 和 Cezary 喜欢玩游戏,尤其是他们自己发明的游戏。他们决定摆放一排硬币堆,每堆包含 $m$ 枚硬币,每枚硬币要么是蓝色的,要么是红色的。在 Natalia 的回合中,她可以选择任意一枚蓝色硬币,并将该硬币及其上方堆中的所有硬币从游戏中移除。同样,在 Cezary 的回合中,他可以选择任意一枚红色硬币,并将该硬币及其上方堆中的所有硬币从游戏中移除。玩家轮流进行操作,无法进行合法操作(即所有硬币已被移除)的玩家输掉比赛。

了解规则后,他们现在必须确定游戏的初始状态——一个包含 $d$ 堆硬币的序列,每堆恰好包含 $m$ 枚硬币。Natalia 和 Cezary 都不想拥有不公平的优势,因此他们一致认为硬币堆序列必须是“公平的”。如果假设 Natalia 和 Cezary 都采取最优策略,后手玩家(即不先手行动的玩家)获胜,则称该硬币堆序列是公平的。也就是说,如果 Natalia 先手,则在最优策略下 Cezary 获胜;反之,如果 Cezary 先手,则 Natalia 获胜。

他们已经摆放好了前 $k$ 堆硬币,每堆 $m$ 枚。现在他们想知道如何完成这个序列。他们已经得出结论,游戏中的硬币堆总数不超过 $n$ 是合理的。请帮助他们,对于区间 $[k, n]$ 中的每个 $d$,计算有多少种不同的公平的 $d$ 堆硬币序列,这些序列以他们已经摆放好的硬币堆开头。如果存在 $i \in [1, d]$ 和 $j \in [1, m]$,使得两个序列中第 $i$ 堆的第 $j$ 枚硬币颜色不同,则认为这两个序列不同。

由于结果可能非常大,请输出它们对 $10^9 + 7$ 取模后的余数。

输入格式

第一行包含三个整数 $n, m, k$ ($1 \le n \le 32; 1 \le m \le 24; 0 \le k \le n$),分别表示硬币堆数量的上限、每堆硬币的数量以及已经摆放好的硬币堆数量。

接下来的 $k$ 行包含已摆放硬币堆的描述;第 $i$ 行包含一个长度恰好为 $m$ 的字符串,由字符 ‘N’ 和 ‘C’ 组成,表示第 $i$ 堆硬币从下往上的颜色。如果第 $j$ 个字符是 ‘N’,则第 $i$ 堆中从下往上数第 $j$ 枚硬币是蓝色的。否则,该字符为 ‘C’,表示该硬币是红色的。

输出格式

输出一行,包含 $n - k + 1$ 个整数,其中第 $i$ 个数表示将序列延长 $i - 1$ 堆,使得最终序列公平的方法数,结果对 $10^9 + 7$ 取模。

样例

样例输入 1

3 3 1
CCN

样例输出 1

0 1 3

样例输入 2

2 1 0

样例输出 2

1 0 2

样例输入 3

4 2 4
CN
NC
CC
NN

样例输出 3

1

说明

在第一个样例中,如果不增加任何硬币堆,单堆序列是不公平的。我们可以增加一个 NNC 堆,这样两堆序列就是公平的。增加两堆的方法有三种:[CCN, NNN], [NNN, CCN], [NCN, NCN]。

子任务

  • 在某些测试组中,$k = n$。
  • 在某些测试组中,$n \le 8$ 且 $m \le 8$。
  • 在某些测试组中,$n \le 12$ 且 $m \le 13$。
  • 在某些测试组中,$n \le 16$ 且 $m \le 19$。

上述每种情况至少描述了一组未在先前情况中提到的测试组。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.