ZOJ3418--Binary Number//二进制

来源:互联网 发布:汇川plc编程软件价格 编辑:程序博客网 时间:2024/05/16 14:38

利用异或、与的操作。

#include<iostream>#include<stdio.h>using namespace std;int p[32];int find(int x){int k=0;for(int i=0;i<31;i++){if(x&p[i]) k++;}return k;}int main(){p[0]=1;for(int i=1;i<31;i++) p[i]=(p[i-1]<<1);int T,sm[110],sn[110];cin>>T;while(T--){int m,n;cin>>m>>n;for(int i=0;i<m;i++)scanf("%d",&sm[i]);for(int i=0;i<n;i++)scanf("%d",&sn[i]);for(int i=0;i<n;i++){int s=sn[i]^sm[0];int k=find(s),out=sm[0];for(int j=1;j<m;j++){s=sn[i]^sm[j];int t=find(s);if(t<k)  {out=sm[j];k=t;}else if(t==k&&sm[j]<out) out=sm[j];}cout<<out<<endl;}}return 0;}


原创粉丝点击