1 条题解

  • 0
    @ 2026-10-18 18:33:49

    G3017 [GESP202506 三级] 奇偶校验 题解

    知识点:二进制、位运算、奇偶校验。

    解题思路

    累计所有输入整数二进制中1的数量sum,输出sum及sum%2作为所需校验位。

    为什么正确

    加上sum%2后,1的总数量为偶数,恰满足偶校验要求。

    易错点

    统计二进制位,不是十进制数位;总计数和校验位是两个输出。

    复杂度

    时间O(nw),w为机器字长;空间O(1)。

    参考代码(C++17)

    #include<bits/stdc++.h>
    
    using namespace std;
    int main() {
        ios::sync_with_stdio(false);
        cin.tie(nullptr);
        int n,v,sum=0;
        cin>>n;
        while(n--) {
            cin>>v;
            sum+=__builtin_popcount((unsigned)v);
        }
        cout<<sum<<" "<<sum%2;
    }
    

    说明

    本题解为配套教学整理,非官方题解。复杂度按本页参考实现计算,题库使用6个自行生成的测试点。

    • 1

    信息

    ID
    685
    时间
    1000ms
    内存
    512MiB
    难度
    进阶
    标签
    递交数
    1
    已通过
    1
    上传者