2010 成都预选赛 Binary Number

水题!可惜没看清当A中有多个相同结果时,要取最小值,被WA了一次。

#include <iostream>
using namespace std;

 

int AC(int a,int b)
{
     int n=0;
     while(a!=0||b!=0)
     {
            if(a%2!=b%2)
            n++;
            a/=2;
            b/=2;
     }
     return n;
}
int main()
{
    int x,y,i,j,A[101],B[101],n,e,f,top;
    cin>>n;
    while(n--)
    {
              cin>>x>>y;
              for(i=0;i<x;i++)
              cin>>A[i];
              for(i=0;i<y;i++)
             cin>>B[i];
              for(i=0;i<y;i++)
              {e=1000000;

              for(j=0;j<x;j++)
              {
                              f=AC(A[j],B[i]);
                              if(e>f)
                              {
                                     top=A[j];
                                     e=f;
                              }
                              else if(e==f&&top>A[j])
                              {
                                   top=A[j];
                              }
              }
              cout << top<< endl;

              }
    }   
 
}
 

posted @ 2010-11-13 23:38  CoderZhuang  阅读(98)  评论(0编辑  收藏  举报