ZOJ.3418 Binary Number【异或】 2015/09/22
来源:互联网 发布:电脑图片编辑软件 编辑:程序博客网 时间:2024/06/05 20:46
For 2 non-negative integers x and y, f(x, y) is defined as the number of different bits in the binary format ofx and y. For example, f(2, 3)=1, f(0, 3)=2, f(5, 10)=4.
Now given 2 sets of non-negative integers A and B, for each integerb in B, you should find an integer a in A such that f(a, b) is minimized. If there are more than one such integers in setA, choose the smallest one.
Input
The first line of the input is an integer T (0 < T ≤ 100), indicating the number of test cases. The first line of each test case contains 2 positive integersm and n (0 < m, n ≤ 100), indicating the numbers of integers of the 2 setsA and B, respectively. Then follow (m +n) lines, each of which contains a non-negative integers no larger than 1000000. The firstm lines are the integers in set A and the other n lines are the integers in setB.
Output
For each test case you should output n lines, each of which contains the result for each query in a single line.
Sample Input
22 512123455 21000000999914233421013245353
Sample Output
1211199990
Author: CAO, Peng
Source: The 2010 ACM-ICPC Asia Chengdu Regional Contest
暴力枚举,异或之后求其值二进制中1的个数。。。
#include<iostream>#include<cstdio>#include<cstring>#include<cmath>using namespace std;int a[110],b[110],n,m,t;int binary(int i,int j){ int ret = b[i]^a[j]; int ans = 0; while( ret ){ if( ret & 1 ) ans++; ret>>=1; } return ans;}int main(){ cin>>t; while(t--){ cin>>m>>n; int i,j; for( i = 0 ; i < m ; ++i ) scanf("%d",&a[i]); for( i = 0 ; i < n ; ++i ) scanf("%d",&b[i]); int flag,ret,ans; for( i = 0 ; i < n ; ++i ){ flag=1000000,ret=1000000; for( j = 0 ; j < m ; ++j ){ ans = binary(i,j); if( ans < ret ){ ret = ans; flag = a[j]; } else if( ans == ret ){ if( flag > a[j] ) flag = a[j]; } } printf("%d\n",flag); } } return 0;}
- ZOJ.3418 Binary Number【异或】 2015/09/22
- ZOJ 3418 Binary Number
- zoj 3418 Binary Number(二进制数)
- ZOJ.2829 Beautiful Number【水】 2015/09/22
- ZOJ.1526 Big Number【对数】 2015/09/22
- zoj 3418 || The 2010 ACM-ICPC Asia Chengdu Regional Contest - C Binary Number
- ZJU 3418 Binary Number
- zoj 3432 异或
- zoj 5518 异或
- poj 3711 Binary Number -- 据说是暴力(利用数位计算异或^水过)
- ZOJ.3336 Friend Number II【有点水】 2015/10/09
- zoj 3870 异或运算
- zoj 3870 异或运算
- Binary Number
- leetcode---Single Number---异或
- 136. Single Number异或
- zoj 3432(异或的使用)
- ZOJ 3870 Team Formation(异或)
- AndroidAnnotations常用标记
- weglogic Error 503--Service Unavailable
- 程序员需要经常逛得网站
- 利用随机数生成四位验证码
- 黑马程序员——IOS学习笔记(Foundation框架(一))
- ZOJ.3418 Binary Number【异或】 2015/09/22
- 在 Ubuntu 14.04 中配置 Sublime Text 3 的 Golang 开发环境
- Android的Handler总结
- hdu5464Clarke and problem
- git 【基本概念】
- java 连接数据库mysql的语句怎么写
- Java虚拟机调优工具 jstack
- [Leetcode]Maximum Subarray
- boost的安装和使用