1 条题解

  • 0
    @ 2025-11-18 17:58:40

    题意简述

    两人在树上移动棋子,P 先手。

    P 不能走红边,M 不能走蓝边,品红边两人都能走。

    不能走到对方棋子所在位置。

    不能移动就输。

    问最终结果(P 胜 / M 胜 / 平局)。

    核心思路

    这是一个有禁手边的回合制博弈,关键在于:

    双方移动受颜色限制。

    因为树是连通的,但某些边对某些玩家禁止,所以可能出现某个玩家一开始就无路可走的情况。

    也可能出现互相无法到达对方的情况,导致平局。

    关键观察

    第一步就输 如果 P 开局时,从 a 出发能走的边数为 0(即所有邻边都是红色或者被 M 占据),则 P 第一步就输。 同理,如果 M 开局时 b 点能走的边数为 0,则 M 输(但 P 先手,所以这种情况较少见,除非 P 第一步封住 M)。

    互相无法攻击 如果 P 和 M 在各自的“可达区域”内,且双方无法通过允许的边到达对方所在的连通块,就会形成平局。

    P 的优势 P 先手,如果 P 能第一步走到一个安全位置,并且封死 M 的路线,则 P 胜。

    判断逻辑

    我们可以这样分情况:

    情况 1:P 第一步无法移动

    直接输出 Marin。

    情况 2:M 第一步无法移动

    这里要注意:M 第一步是在 P 移动之后,所以如果 P 第一步能走到某个点使得 M 无路可走,则 P 胜。

    情况 3:双方都有路

    考虑双方在允许的边下形成的连通块:

    设 P 的可达图为:删除红边(P 不能走)后,P 所在的连通分量。

    设 M 的可达图为:删除蓝边(M 不能走)后,M 所在的连通分量。

    如果这两个连通分量不相交(即没有公共点),那么双方永远碰不到对方,游戏平局(Magenta)。

    否则,P 可以利用先手优势逼近 M,通常 P 会赢,除非 M 能反制。

    实际简化

    通过分析样例和题目特性,可以总结出更简单的判断规则(官方解法):

    如果 P 第一步能走到一个点,使得 M 在下一步无路可走,则 P 胜。

    如果 P 和 M 的初始位置在“允许的图”中距离 ≥ 3,并且 M 的度数 ≥ 2(有逃跑路线),则可能平局。

    否则 M 胜。

    具体实现时,可以 BFS 计算在各自允许的边上,P 到 M 的最短距离,以及检查度数。

    结论

    本题是一个受限移动的树上博弈。

    先手优势明显,但受颜色限制可能平局。

    判断顺序:P 是否一步制胜 → 是否互相无法攻击 → 否则 M 胜。

    这样即可得到正确输出。

    • 1

    信息

    ID
    5202
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    2
    已通过
    1
    上传者