CF2140E1 Prime Gaming (Easy Version)

题目描述

这是该问题的简单版。本版本与其它版本的区别在于,这一版中 $m \leq 2$。只有当你解决了所有版本的问题后,才能进行 hack。 一个合法的方案定义为:有 $n$ 堆石子,每堆的石子数必须是 $1$ 到 $m$ 之间的整数(闭区间)。 给定一个合法的 $n$ 堆石子方案,其中有一些下标从 $1$ 到 $n$ 被标记为“好”(good)。Alice 和 Bob 开始轮流玩游戏,总共 $n-1$ 轮,Alice 先手。在每一轮,他们必须执行以下操作: - 选择任意一个满足 $1 \leq i \leq p$($p$ 表示当前剩余的堆数)且 $i$ 为好下标的整数 $i$,然后将第 $i$ 堆彻底移除。 每执行一次操作,石堆数量减少 $1$,剩余石堆会重新编号。当只剩下最后一堆时,游戏结束。保证下标 $1$ 一定是好下标。 令 $x$ 为最后仅存堆的石子数量。Alice 希望最大化最终的 $x$,Bob 则希望最小化。二者均采取最优策略。 你需要计算所有可能的合法方案下 $x$ 的和,并对 $10^9+7$ 取模。

输入格式

每组测试数据包含多组测试用例。第一行为测试用例数量 $t$($1 \leq t \leq 10^4$)。其后为每组用例的描述。 每组用例的第一行为两个整数 $n$($1 \leq n \leq 20$)、$m$($1 \leq m \leq 2$)——表示石堆数量以及每堆最多的石子数。 第二行为一个整数 $k$($1 \leq k \leq n$)——好下标的数量。 第三行为 $k$ 个严格递增的整数 $c_1,c_2,\ldots,c_k$($1=c_1 < c_2 < \ldots < c_k \leq n$)——好下标。保证 $1$ 一定是好下标(即 $c_1=1$)。 保证所有测试用例中 $\sum 2^n \leq 2^{20}$。 保证所有测试用例中 $\sum m \leq 10^6$。

输出格式

对于每个测试用例,输出一行一个整数,代表所有可能合法方案下 $x$ 的和,对 $10^9+7$ 取模。

说明/提示

对于第一个用例,所有合法方案为:$[1, 1]$、$[1,2]$、$[2, 1]$、$[2, 2]$。 由于只有 $2$ 堆石子,Alice 只能选择第一堆并移除,最后剩下的堆的石子数量之和为 $1+1+2+2=6$。 对于第二个用例,最后一堆石子数量总为 $1$。 由 ChatGPT 5 翻译