CF2220B.OIE Excursion

普及-

通过率:0%

AC君温馨提醒

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

题目描述

Hector 正与西班牙信息学奥林匹克代表队一起在拉科鲁尼亚远足,但他非常想溜出去见他的朋友们 Gustavo、Esomer 和 Dani。为此,他需要穿过一条由 nn 个志愿者看守的道路,志愿者们站成一排,编号为 11 到 nn;第 ii 位志愿者负责看守位置 ii。

每个志愿者都有一个内部计时器。最初(第 0 秒),第 ii 位志愿者的计时器值为 aia_i。每秒,所有计时器增加 1。一旦计时器达到 mm,它会绕回到 0。具体来说,在第 xx 秒,第 ii 位志愿者的计时器显示值为 (ai+x)(modm)(a_i + x) \pmod m。

第 ii 位志愿者只有在他们的计时器恰好为 0 时,才会看守位置 ii。其他时间他们都会分心,不会注意到 Hector。

Hector 从位置 0 开始,在所有志愿者的左侧。为了逃脱,他需要到达位置 n+1n+1。每秒结束时,Hector 可以选择停留在当前所在位置,向左移动一个位置,或者向右移动一个位置。注意,Hector 不能移动到位置 0 的左侧。

当且仅当在某一秒开始时,Hector 位于位置 ii(1≤i≤n1 \le i \le n),且第 ii 位志愿者的计时器为 0 时,Hector 才会被抓住。

判断是否存在一种策略,使 Hector 能够在不被抓住的情况下穿过所有志愿者并逃脱。

输入格式

每个测试点包含多个测试用例。第一行包含测试用例的数量 tt(1≤t≤1041 \le t \le 10^4)。接下来是每个测试用例的描述。

每个测试用例由两行组成:

第一行包含两个整数 nn 和 mm(2≤n≤2⋅1052 \le n \le 2 \cdot 10^5,2≤m≤1092 \le m \le 10^9)——志愿者的数量以及计时器的周期长度。

第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n(0≤ai<m0 \le a_i < m),其中 aia_i 表示第 ii 位志愿者在 t=0t=0 时的计时器初始值。

保证所有测试用例的 nn 之和不超过 2⋅1052 \cdot 10^5。

输出格式

对于每个测试用例,输出一行,包含 "YES" 或 "NO",表示 Hector 能否逃脱。你可以以任意大小写输出答案(大小写均可)。例如,"yEs"、"yes"、"Yes" 和 "YES" 都会被识别为肯定回答。

输入输出样例

  • 输入#1

    6
    8 5
    0 4 0 2 1 0 0 3
    6 2
    1 0 1 0 1 0
    6 2
    1 1 1 1 0 1
    2 10
    6 9
    2 2
    0 1
    5 1000000000
    1 2 3 4 999999999

    输出#1

    YES
    YES
    NO
    YES
    YES
    YES

说明/提示

  • 样例 1:Hector 可以每秒向右移动,无需等待或向左移动就能逃脱,因为不存在 ii 使得 (ai+i)(modm)=0(a_i + i) \pmod m = 0。

  • 样例 2:一种可能的策略是先在起始位置等待 1 秒,然后每秒向右移动,无需进一步等待或向左移动。

翻译有deepseek v3.2完成

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

首页