1 条题解

  • 0
    @ 2025-10-14 11:00:15

    「星际迷航」题解

    核心思路

    1. 单树博弈分析

    定义节点 uu 的 SG 值:

    • 叶子节点:SG(u)=0SG(u) = 0
    • 内部节点:$SG(u) = \bigoplus_{v \in \text{children}(u)} (SG(v) + 1)$

    SG(1)>0SG(1) > 0 表示在单树游戏中先手必胜。

    2. 星门的影响

    星门从 uuww 相当于给 uu 增加虚拟子节点:

    SG(u)=SG(u)(SG(w)+1)SG'(u) = SG(u) \oplus (SG(w) + 1)

    3. 方案计数

    设:

    • X=#{xSG(x)=0}X = \#\{x \mid SG(x) = 0\}(必败节点数)
    • Y=NXY = N - X(必胜节点数)
    • Z=#{xSG(1)(SG(x)+1)>0}Z = \#\{x \mid SG(1) \oplus (SG(x) + 1) > 0\}Ai=1A_i=1 时能赢的 BiB_i 个数)

    4. 矩阵递推

    定义状态向量:

    $$\mathbf{v}_i = \begin{bmatrix} F_i \\ G_i \end{bmatrix} $$

    其中 FiF_i 为从宇宙 ii 开始必胜的方案数,GiG_i 为必败的方案数。

    递推矩阵:

    $$\mathbf{M} = \begin{bmatrix} (N-1)N\cdot [SG(1)>0] + Z & (N-1)N\cdot [SG(1)>0] + W \\ (N-1)N\cdot [SG(1)=0] + W & (N-1)N\cdot [SG(1)=0] + Z \end{bmatrix}$$

    其中 W=NZW = N - Z

    最终答案:

    $$\mathbf{v}_0 = \mathbf{M}^D \cdot \mathbf{v}_D, \quad \mathbf{v}_D = \begin{bmatrix} [SG(1)>0] \\ [SG(1)=0] \end{bmatrix} $$

    时间复杂度:O(N+logD)O(N + \log D)

    • 1

    信息

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