杭州电 3711 Binary Number

杭州电 3711 Binary Number

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

Binary Number

Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 1287    Accepted Submission(s): 807

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
   
   
2 2 5 1 2 1 2 3 4 5 5 2 1000000 9999 1423 3421 0 13245 353

 

Sample Output
   
   
1 2 1 1 1 9999 0

AC代码例如以下:

#include <stdio.h>
int a[105];
int count(int x)
{
    int c = 0;
    for(;x;x>>=1) if(x&1) c++;
    return c;
}
int main()
{
    int b, i, j, n, m, k, min, t,cases;
    scanf("%d",&cases);
    while(cases--)
    {
        scanf("%d%d",&n,&m);
        for(i=0; i<n; i++) scanf("%d",&a[i]);
        for(i=0; i<m; i++)
        {
            scanf("%d",&b);
            min = count(b^a[0]);
            k = 0;
            for(j=1; j<n; j++)
            {
                t = count(b^a[j]);
                if(t<min||t==min&&a[j]<a[k])
                    { min = t;k = j;}
            }
            printf("%d\n",a[k]);
        }
    }
    return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116703.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python算法(1)抓交通肇事犯

    python算法(1)抓交通肇事犯抓交通肇事犯1.问题描述一辆卡车违反交通规则,撞人后逃跑。现场有三人目击该事件,但都没有记住车号,只记下了车号的一些特征。甲说:牌照的前两位数字是相同的:乙说:牌照的后两位数字是相同的,但与前两位

    2022年8月7日
    1
  • Clickhouse修改字段类型[通俗易懂]

    Clickhouse修改字段类型[通俗易懂]Clickhouse的列操作ALTERTABLE[db].name[ONCLUSTERcluster]ADD|DROP|CLEAR|COMMENT|MODIFYCOLUMN…在查询中,指定一个或多个逗号分隔操作的列表。每个操作都是对列的操作。支持以下操作:ADDCOLUMN—Addsanewcolumntothetable. DROPCOLUMN—Deletesthecolumn. CLEARCOLUMN—Resetscolum…

    2022年9月6日
    2
  • Django(33)Django操作cookie

    Django(33)Django操作cookie前言cookie:在网站中,http请求是无状态的。也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户。cookie的出现就是为了解决这个问题,第一次登录

    2022年7月29日
    5
  • pandas’_pandas常用方法

    pandas’_pandas常用方法文章目录1.pd.Series.fillna官方案例2.pd.DataFrame.fillna官方案例1.pd.Series.fillnaSeries.fillna(value=None,method=None,axis=None,inplace=False,limit=None,downcast=None)描述按照指定的方法填充NA/NaN值参数value:scalar,dict,Series,orDataFrame标量值或字典对象用于填充缺失值要填充的值,该

    2022年8月12日
    6
  • 2018年系统架构设计师综合知识真题及详细答案解析

    2018年系统架构设计师综合知识真题及详细答案解析2018年系统架构师考试科目一:综合知识1.在磁盘调度管理中,应先进行移臂调度,再进行旋转调度。假设磁盘移动臂位于21号柱面上,进程的请求序列如下表所示。如果采用最短移臂调度算法,那么系统的响应序列应为()。  A.②⑧③④⑤①⑦⑥⑨  B.②③⑧④⑥⑨①⑤⑦  C.①②③④⑤⑥⑦⑧⑨  D.②⑧③⑤⑦①④⑥⑨【解析】  当进程请求读磁盘时,操作系统先进行…

    2022年5月6日
    61
  • 用python来开发webgame服务端(1)[通俗易懂]

    用python来开发webgame服务端(1)[通俗易懂]http://ciniao.me/article.php?id=9 刺鸟原创文章,转载请注明出处    在开始之前,先简单描述一下项目的特点:我要实现的是一个mmorpg的webgame,地图上需要看到其他的玩家,战斗系统采用半回合制的模式,所谓的半回合制,即是:采用回合制的画面布局,友方和敌方分列左右,但是战斗的中途,其他的玩家可以及时的随时插入这场战斗。当然,作为一款rpgGa

    2022年5月30日
    47

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号