CF2140E1.Prime Gaming (Easy Version)

提高+/省选-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

这是该问题的简单版。本版本与其它版本的区别在于,这一版中 m≤2m \leq 2。只有当你解决了所有版本的问题后,才能进行 hack。

一个合法的方案定义为:有 nn 堆石子,每堆的石子数必须是 11 到 mm 之间的整数(闭区间)。

给定一个合法的 nn 堆石子方案,其中有一些下标从 11 到 nn 被标记为“好”(good)。Alice 和 Bob 开始轮流玩游戏,总共 n−1n-1 轮,Alice 先手。在每一轮,他们必须执行以下操作:

  • 选择任意一个满足 1≤i≤p1 \leq i \leq p(pp 表示当前剩余的堆数)且 ii 为好下标的整数 ii,然后将第 ii 堆彻底移除。

每执行一次操作,石堆数量减少 11,剩余石堆会重新编号。当只剩下最后一堆时,游戏结束。保证下标 11 一定是好下标。

令 xx 为最后仅存堆的石子数量。Alice 希望最大化最终的 xx,Bob 则希望最小化。二者均采取最优策略。

你需要计算所有可能的合法方案下 xx 的和,并对 109+710^9+7 取模。

输入格式

每组测试数据包含多组测试用例。第一行为测试用例数量 tt(1≤t≤1041 \leq t \leq 10^4)。其后为每组用例的描述。

每组用例的第一行为两个整数 nn(1≤n≤201 \leq n \leq 20)、mm(1≤m≤21 \leq m \leq 2)——表示石堆数量以及每堆最多的石子数。

第二行为一个整数 kk(1≤k≤n1 \leq k \leq n)——好下标的数量。

第三行为 kk 个严格递增的整数 c1,c2,…,ckc_1,c_2,\ldots,c_k(1=c1<c2<…<ck≤n1=c_1 < c_2 < \ldots < c_k \leq n)——好下标。保证 11 一定是好下标(即 c1=1c_1=1)。

保证所有测试用例中 ∑2n≤220\sum 2^n \leq 2^{20}。

保证所有测试用例中 ∑m≤106\sum m \leq 10^6。

输出格式

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

输入输出样例

  • 输入#1

    3
    2 2
    1
    1
    3 1
    2
    1 3
    3 2
    2
    1 2

    输出#1

    6
    1
    11

说明/提示

对于第一个用例,所有合法方案为:[1,1][1, 1]、[1,2][1,2]、[2,1][2, 1]、[2,2][2, 2]。

由于只有 22 堆石子,Alice 只能选择第一堆并移除,最后剩下的堆的石子数量之和为 1+1+2+2=61+1+2+2=6。

对于第二个用例,最后一堆石子数量总为 11。

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页