hdu 3711

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int cmp(const void *a,const void *b) {
    return *(int *)a-*(int *)b;
}
int seach(int n,int m) {
    int sum=0,n_x,m_x;
    while(n||m) {
        n_x=n%2;
        m_x=m%2;
        n/=2;
        m/=2;
           if(n_x!=m_x)
               sum++;
    }
    return sum;
}
int main() {
    int i,j,n,m,a[1001],b[1001],min,ma,ma_x,t;
    scanf("%d",&t);
    while(t--) {
    scanf("%d%d",&m,&n);
    for(i=0;i<m;i++)
        scanf("%d",&a[i]);
    for(j=0;j<n;j++)
        scanf("%d",&b[j]);
    qsort(a,m,sizeof(a[0]),cmp);
          for(i=0;i<n;i++) {
              min=10000001;
              for(j=0;j<m;j++) {
                  ma=seach(b[i],a[j]);
                  if(ma<min) {
                      min=ma;
                      ma_x=a[j];
                  }

              }
              printf("%d\n",ma_x);
          }
    }
    return 0;
}
posted @ 2013-07-31 19:58  HYDhyd  阅读(166)  评论(0编辑  收藏  举报