poj 3711 Binary Number -- 据说是暴力(利用数位计算异或^水过)
来源:互联网 发布:天津seo建站 编辑:程序博客网 时间:2024/06/08 17:14
Binary Number
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 2189 Accepted Submission(s): 1288
Problem Description
For 2 non-negative integers x and y, f(x, y) is defined as the number of different bits in the binary format of x 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 integer b in B, you should find an integer a in A such that f(a, b) is minimized. If there are more than one such integer in set A, 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 integers m and n (0 < m, n ≤ 100), indicating the numbers of integers of the 2 sets A and B, respectively. Then follow (m + n) lines, each of which contains a non-negative integers no larger than 1000000. The first m lines are the integers in set A and the other n lines are the integers in set B.
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
#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;int x1[105],x2[105];int fun(int a,int b){ int num=0; int temp = a^b; while(temp){ int c = temp%2; num+=c; temp/=2; } return num;}int main(){ int t,m,n,i,j; int flag; scanf("%d",&t); while(t--){ scanf("%d %d",&m,&n); for(i=0;i<m;i++) scanf("%d",&x1[i]); for(i=0;i<n;i++) scanf("%d",&x2[i]); sort(x1,x1+m); //不知道为啥排序,反正不排序就会wa for(i=0;i<n;i++){ int min=0x3f3f3f3f; for(j=0;j<m;j++){ int num = fun(x2[i],x1[j]); if(num<min){ min=num; flag=x1[j]; } } printf("%d\n",flag); } } return 0;}
0 0
- poj 3711 Binary Number -- 据说是暴力(利用数位计算异或^水过)
- bzoj1833数位dp(据说是模板)
- poj 3252 数位dp(Round Number)
- POJ 2187(计算几何+旋转卡壳法或暴力)
- Light OJ 1105 Fi Binary Number(二分+数位DP)
- hdu 1394 Minimum Inversion Number(暴力或线段树)
- HDU 1018 Big Number(斯特林公式 或 暴力)
- lightoj - 1105 - Fi Binary Number - 数位dp
- codeforces215E(数位DP,规律水过)
- POJ-2773 Happy 2006,暴力2700ms+水过!
- 据说是水DP Lucky tickets POJ 2346
- binary (数位DP)
- number(数位DP)
- BC#31.1002beautiful number——数位DP/暴力
- hdoj 5787 K-wolf Number 数位dp xjb搞水过
- poj 3252 Round Number 数位dp
- ZOJ.3418 Binary Number【异或】 2015/09/22
- POJ 1007 没想到暴力就能过
- 过滤器与拦截器的区别
- 如果天生没什么运气,那你只能努力坚持这10个习惯了
- MSSQL通过SQL语句实现发邮件
- Android基础知识之智能指针:强指针和弱指针
- ceph存储 Ceph架构剖析
- poj 3711 Binary Number -- 据说是暴力(利用数位计算异或^水过)
- 第十二周项目一 阅读程序,请写出这些程序的运行结果(2)
- Android 属性 allowBackup 安全风险浅析
- 基于C语言EOF与getchar()的使用详解
- Android基础UI控件之Button
- 大端模式和小端模式
- linux中platform与中断
- 冒泡排序学习心得(Java实现)
- AppStore上架图片资源信息