HDOJ 3711 Binary Number

#include <iostream>
#include <algorithm>

using namespace std;

int cmp(const void *a,const void *b)
{
    return *(int*)a-*(int*)b;
}

int cn(int x)
{
   int c=0;
   for(;x;x=x>>1)
   {
       if(x&1)
        c++;
   }
   return c;
}

int a[110];
int b[110];

int main()
{

int k;
cin>>k;
for(int ls=0;ls<k;ls++)
{
    int n,m;
    cin>>n>>m;

    for(int i=0;i<n;i++)
        cin>>a;
    for(int j=0;j<m;j++)
        cin>>b[j];

    qsort(a,n,sizeof(int),cmp);

    int tot;
    for(int i=0;i<m;i++)
    {
        int mini=99999999;
        for(int j=0;j<n;j++)
        {
            int c;
            c=b^a[j];
            if(mini>cn(c))
            {
               mini=cn(c);
               tot=a[j];
            }
        }

        cout<<tot<<endl;
    }
}

    return 0;
}

原文地址:https://www.cnblogs.com/CKboss/p/3351122.html