题解
2026-01-25 19:05:16
发布于:浙江
c++:
#include <bits/stdc++.h>
constexpr int N = 30;
constexpr int M = (1 << 30) - 1;
int main() {
stdcin.tie(nullptr)->sync_with_stdio(false);
int n, c;
stdcin >> n >> c;
int one = M, zero = 0, x = c;
for (int i = 0; i < n; ++i) {
int t, a;
stdcin >> t >> a;
if (t == 1)
one &= a, zero &= a;
else if (t == 2)
one |= a, zero |= a;
else
one ^= a, zero ^= a;
x = (x & one) | ((M ^ x) & zero);
stdcout << x << '\n';
}
return 0;
}
python:
N = 3;
M = (1 << N) - 1
n , c = map(int, input().split())
one, zero, x = M, 0, c
for i in range(n):
t, a = map(int, input().split())
if t == 1:
one, zero = one & a, zero & a
elif t == 2:
one, zero = one | a, zero | a
else:
one, zero = one ^ a, zero ^ a
x = (x & one) | ((M ^ x) & zero)
print(x)
这里空空如也







有帮助,赞一个