1 条题解

  • 0
    @ 2026-7-20 1:42:57

    题解

    思路

    对每一个数不断除以 22

    • x % 2 是当前最低二进制位;
    • 把它加入总计数;
    • x /= 2 删除最低位。

    所有数字处理完后,输出总数 ansans % 2

    也可以使用位运算 x & 1x >>= 1,原理相同。

    正确性说明

    每次取模得到当前数的一位二进制数码,整除 22 后转向下一位,因此循环恰好统计该数所有的 1。对全部输入累加后得到总数 SS,而 Smod2S\bmod2 正好按照题意给出校验码。

    复杂度

    每个数最多有 88 个二进制位:

    • 时间复杂度:O(8n)=O(n)O(8n)=O(n)
    • 空间复杂度:O(1)O(1)
    • 1

    信息

    ID
    4946
    时间
    1000ms
    内存
    256MiB
    难度
    2
    标签
    递交数
    5
    已通过
    4
    上传者