1 条题解

  • 0
    @ 2024-3-8 21:11:59

    这是一道经典的位运算题。

    首先需要知道关于异或运算的两个性质:

    • a ^ 0 = a
    • a ^ a = 0

    而且,异或运算是有 交换律 和 结合律 的。

    那么,我们可以把所有的a[i]都异或起来,那么:

    • 相同的 aia_i 做异或运算后会变为0,
    • 最后剩下的 aia_i 异或0后值不变。

    部分代码:

    for(ll i=1,x;i<=n;i++){
        scanf("%lld",&x);
        ans^=x; // ans初始化为0没有问题
    }
    printf("%lld",ans);
    
    • 1

    信息

    ID
    684
    时间
    2000ms
    内存
    4MiB
    难度
    6
    标签
    递交数
    189
    已通过
    51
    上传者