1 条题解

  • 0
    @ 2025-8-7 18:18:30

    O(log(bit(ai)))O(log(bit(a_i)))

    从高到低枚举二进制位数,判断每一位选取与 xx 相反的状态是否能选到。

    #include <bits/stdc++.h>
    using namespace std;
    int main() {
        int t;
        cin >> t;
        while (t--) {
            int x, k;
            cin >> x >> k;
            int y = 0;
            for (int i = 30; i >= 0; i--) {
                if (!(x >> i & 1) && k >= (1 << i)) {
                    y += (1 << i);
                    k -= (1 << i);
                }
            }
            if (!y)
                y = 1;
            cout << y << '\n';
        }
        return 0;
    }
    
    • 1

    信息

    ID
    502
    时间
    1000ms
    内存
    256MiB
    难度
    8
    标签
    递交数
    17
    已通过
    5
    上传者