2010 Asia Chengdu Regional Contest 位运算

来源:互联网 发布:js 遍历所有元素 编辑:程序博客网 时间:2024/06/06 05:22
 
//2010 Asia Chengdu Regional Contest
//http://acm.hdu.edu.cn/webcontest/contest_showproblem.php?pid=1003&ojid=0&cid=3151&hide=0
//简单的位运算题
 
#include<cstdio>#include<cstring>#include<iostream>#define MAX 0x7fffffffusing namespace std;int c[101];int dif(int a,int b){    int i,cou=0;    for(i=20;i>-1;i--){        if((a>>i)^(b>>i)){            cou++;            a|=(1<<i);            b|=(1<<i);        }    }    return cou;}void fmin(int b,int *a,int &m,int k){     int cou=23,i,j,t;     for(i=0;i<m;i++){         if((cou>(j=dif(a[i],b)))||((cou==j)&&(t>a[i]))){                cou=j;                t=a[i];         }     }     c[k]=t;}int main(){    int i,n,m,t,a[101],b[101];    cin>>t;    while(t--){          cin>>m>>n;          for(i=0;i<m;i++) cin>>a[i];          for(i=0;i<n;i++){              cin>>b[i];              fmin(b[i],a,m,i);          }          for(i=0;i<n;i++) cout<<c[i]<<endl;    }    return 0;}

原创粉丝点击