1 条题解

  • 0
    @ 2026-9-9 9:00:46

    题解

    思路

    记 S=X+YS=X+Y,并令 Bi=Ai mod SB_i=A_i\bmod S。

    做法

    若所有 Bi<XB_i<X,先手每次选择的每一堆都至少还含一个完整的 SS,减去 XX 后该堆的余数变为 Bi+YB_i+Y;后手可以选择完全相同的石子堆并各减去 YY,使所有余数恢复原状,同时让这些堆各减少一个 SS。重复这一应对,最终一定是先手先无法操作,所以这种状态为后手必胜。

    否则至少有一个 Bi≥XB_i\ge X。当 X≤YX\le Y 时,先手选择所有满足 Bi≥XB_i\ge X 的堆:被选中堆的新余数为 Bi−X<YB_i-X<Y,未选中堆的余数小于 X≤YX\le Y,于是后手面对上一段所述的必败状态。当 X>YX>Y 时,若存在 Y≤Bi<XY\le B_i<X,无论先手是否选择这堆,操作后它的余数都会至少为 YY;此时后手的取石数 YY 不大于先手的 XX,由刚才的情形可知后手必胜。反之,先手选择所有余数至少为 XX 的堆后,未选中堆的余数因不存在中间区间而小于 YY,被选中堆的余数也小于 YY,所以先手必胜。

    复杂度

    扫描所有石子堆判断“存在 Bi≥XB_i\ge X”且“不存在 Y≤Bi<XY\le B_i<X”即可,时间复杂度为 O(N)O(N),空间复杂度为 O(1)O(1)。

    • 1

    信息

    ID
    1570
    时间
    2000ms
    内存
    512MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者