codeforce C. Boboniu and Bit Operations
#include<stdio.h> #include<math.h> #include<string.h> #include<ctype.h> #include<iostream> #include<algorithm> #include<queue> #include<bitset> typedef long long ll; using namespace std; int a,b; int aa[2000],bb[2000]; bool check(int num) { for(int i=0;i<a;i++) { bool flag=0; for(int j=0;j<b;j++) { int temp=(aa[i]&bb[j]); if((num|temp)==num) { flag=true;break; } } if(!flag) return false; } return true; } int main() { cin>>a>>b; for(int i=0;i<a;i++) cin>>aa[i]; for(int j=0;j<b;j++) cin>>bb[j]; for(int i=0;i<(1<<9);i++) { if(check(i)) { cout<<i<<endl; break;} } return 0; }
思路:2^9数据量很小,可以考虑枚举
然后在枚举每一个a[i]&b[j],使其与要对比的数进行或运算
只要每一个a都存在(num|temp)==num),说明这个数合法