1 条题解

  • 0
    @ 2026-9-9 9:21:20

    题解

    思路

    从高位到低位贪心构造答案:设已经确定的位为 ans,尝试把当前位也置为 11,得到候选掩码 XX。

    做法

    对每个 AiA_i,求最小的 Bi≥AiB_i\ge A_i 且 (Bi&X)=X(B_i\mathbin{\&}X)=X;若 XX 中所有为 11 的位在 AiA_i 中也为 11,代价为零,否则令 pp 为最高的“XX 为 11 而 AiA_i 为 00”的位,保持 AiA_i 的更高位不变、把第 pp 位变成 11,更低位只保留 XX 要求的位,这就是最小的 BiB_i。取 KK 个最小的 Bi−AiB_i-A_i,若总和不超过 MM,当前位即可保留。高位的价值大于所有低位之和,所以逐位贪心必然得到最大值;每次判定又恰好计算了达到候选掩码的最小总操作数。

    复杂度

    共检查 3131 位并用线性选择找出最小的 KK 个代价,时间复杂度为 O(Nlog⁡A)O(N\log A),空间复杂度为 O(N)O(N)。

    • 1

    信息

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