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),说明这个数合法

posted on 2022-04-24 13:54  zesure  阅读(24)  评论(0编辑  收藏  举报

导航