1 条题解

  • 0
    @ 2026-9-9 9:22:31

    题解

    思路

    令 XX 表示当前格子序列,并定义边界序列 Yi=Xi⊕Xi+1Y_i=X_i\oplus X_{i+1}。

    做法

    初始的 YY 全为 11;一次操作恰好选择形如 1,0,…,0,11,0,\ldots,0,1 的一段,把两端的 11 变成 00。第一个格子的值始终为 11,所以若 A1=0A_1=0,答案为零。否则目标边界序列为 Bi=Ai⊕Ai+1B_i=A_i\oplus A_{i+1}。

    考察 BB 中每一段连续的零。若某段长度 xx 为奇数,它不可能由成对消去的边界得到。若 x=2mx=2m,完成该段需要 mm 次操作,段内操作顺序共有 (2m−1)!!(2m-1)!! 种。不同零段彼此独立,但它们的操作可以任意交错;若各段对应 m1,m2,…,mkm_1,m_2,\ldots,m_k,交错数为 (∑mi)!/∏mi!(\sum m_i)!/\prod m_i!。

    复杂度

    因此答案为

    (∑mi)!∏i(2mi−1)!!mi!.(\sum m_i)!\prod_i\frac{(2m_i-1)!!}{m_i!}.

    预处理阶乘、逆阶乘和奇数双阶乘后线性扫描即可,总复杂度为 O(N)O(N),空间复杂度为 O(N)O(N)。

    • 1

    信息

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