1 条题解

  • 1
    @ 2020-08-30 21:54:32

    #include <iostream>
    #define ULL unsigned long long

    using namespace std;

    int n;
    ULL a[100];

    ULL work(int ni,ULL now)
    {
    ULL ans=1e19;
    if(ni==n)
    {
    return now;
    }
    else
    {
    ans=min(ans,work(ni+1,now&a[ni]));
    if(ans==0)
    {
    return 0;
    }
    ans=min(ans,work(ni+1,now|a[ni]));
    if(ans==0)
    {
    return 0;
    }
    ans=min(ans,work(ni+1,now^a[ni]));
    if(ans==0)
    {
    return 0;
    }
    ans=min(ans,work(ni+1,now&~a[ni]));
    if(ans==0)
    {
    return 0;
    }
    ans=min(ans,work(ni+1,now|~a[ni]));
    if(ans==0)
    {
    return 0;
    }
    ans=min(ans,work(ni+1,now^~a[ni]));
    if(ans==0)
    {
    return 0;
    }
    }
    return ans;
    }

    int main()
    {
    int t,i,j;
    cin>>t;
    for(i=1;i<=t;i++)
    {
    cout<<"Case #"<<i<<": ";
    cin>>n;
    for(j=0;j<n;j++)
    {
    cin>>a[j];
    }
    if(n==1)
    {
    cout<<a[0]<<endl;
    }
    else
    {
    cout<<min(work(1,a[0]),work(1,~a[0]))<<endl;
    }
    }
    return 0;
    }

  • 1

信息

ID
1055
难度
9
分类
(无)
标签
(无)
递交数
1
已通过
1
通过率
100%
上传者