1 条题解

  • 0
    @ 2026-9-3 10:53:34

    题解

    思路

    数组各位置完全对称。对任意取值 tt,满足 ai=ta_i=t 的好数组数量与位置 ii 无关。因此当 nn 为偶数时,每种元素贡献都会出现偶数次,答案为零。下文只考虑奇数 nn,此时答案等于所有好数组中 a1a_1 的总异或。

    异或可逐位统计,只需知道“a1a_1 的第 ii 位为一”的方案数奇偶性。精确要求总 OR 等于 yy 不易处理,先计算总 OR 是某个 s⊆ys\subseteq y 的子集,再在模二意义下做子集容斥;因为 −1≡1(mod2)-1\equiv1\pmod2,所有容斥项直接相加。

    做法

    子任务 1:枚举数组

    枚举 yy 的全部子掩码作为每个 aia_i,递归生成整个数组,检查元素和与 OR,并把合法数组的 XOR 累计到答案。

    子任务 2:枚举允许掩码与首元素

    固定允许掩码 s⊆ys\subseteq y 和首元素 t⊆st\subseteq s。其余 n−1n-1 个数均为 ss 的子掩码且总和为 x−tx-t 的方案数奇偶性,利用 Lucas 定理与 Vandermonde 恒等式等于

    ((n−1)sx−t) mod 2.\binom{(n-1)s}{x-t}\bmod2.

    二项式系数为奇数当且仅当 x−tx-t 的每个一位都包含在 (n−1)s(n-1)s 中。若成立,就把 tt 异或进当前答案。枚举全部二元子集对总复杂度为 O(3b)O(3^b)。

    满分做法:消去首元素枚举

    统计答案第 ii 位时,要求首元素含有 2i2^i。把这一位预先选出,再对所有首元素与其余元素使用 Vandermonde 恒等式合并,可得允许掩码 ss 下的方案数奇偶性为

    (ns−2ix−2i) mod 2.\binom{ns-2^i}{x-2^i}\bmod2.

    枚举每个 s⊆ys\subseteq y 以及 ss 中每个一位 2i2^i,检查 x≥2ix\ge2^i 且 (x−2i)⊆(ns−2i)(x-2^i)\subseteq(ns-2^i)。若成立,就翻转答案第 ii 位。

    正确性证明

    位置对称性保证每个固定元素值在所有位置出现次数相同;把所有数组得分再异或时,偶数 nn 的贡献成对抵消,奇数 nn 只需保留首位置贡献。

    Lucas 定理在模二下说明 (AB)\binom AB 为奇数当且仅当 B⊆AB\subseteq A。将“每个元素都是 ss 的子掩码”的指示写成二项式系数后,Vandermonde 恒等式把各元素和为 xx 的卷积合并为一个二项式系数。对子集 OR 做容斥时正负号在模二下相同,因此枚举全部 s⊆ys\subseteq y 正确恢复 OR 恰为 yy 的奇偶贡献。

    中层显式枚举首元素 tt,满分做法预选目标位并再次用 Vandermonde 合并全部首元素选择,二者统计同一方案集合。每个答案位恰在方案数为奇数时翻转,最终整数就是所有好数组得分的总异或。

    复杂度

    小层复杂度为 O(2bn)O(2^{bn})。

    中层时间复杂度为 O(3b)O(3^b),空间复杂度为 O(1)O(1)。

    满分时间复杂度为 O(b2b)O(b2^b),空间复杂度为 O(1)O(1),其中 b=popcount⁡(y)≤20b=\operatorname{popcount}(y)\le20。

    • 1

    信息

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