题目链接:
Boboniu and Bit Operations - 洛谷
思路:
看到数字最大只有9位,直接线性枚举答案即可。对于每个ai,如果都能找到对应的bj,使得(ai & bi) | mask == mask,则说明满足题意,此时输出结果即可。
代码:
#include <bits/stdc++.h>
using namespace std;
const int maxn = 205;
int n, m;
int a[maxn], b[maxn];
int main(){
ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
cin >> n >> m;
for(int i=1; i<=n; i++) cin >> a[i];
for(int i=1; i<=m; i++) cin >> b[i];
for(int mask=0; mask<512; mask++){
bool isValid = true;
for(int i=1; i<=n; i++){
bool flag = false;
for(int j=1; j<=m; j++){
if(((a[i] & b[j]) | mask) == mask) {flag = true; break;}
}
if(flag == false) {isValid = false; break;}
}
if(isValid) {cout << mask << '\n'; return 0;}
}
}