#G0011. 汉明距离【CSP模拟赛T3】

汉明距离【CSP模拟赛T3】

题目描述

汉明距离是以理查德·卫斯里·汉明的名字命名的。在信息论中,两个等长字符串之间的汉明距离是两个字符串对应位置的不同字符的个数。例如:'1011101' 与 '1001001' 之间的汉明距离是 22 .

给你 nn 个非负整数 a1,a2,ana_1, a_2, \cdots a _n,任何一个都小于 2m2^m

对于其中的每一个数,你都要找出它与数组中其他元素之间的最大汉明距离。

两个非负整数的哈明距离被定义为在这些数字的二进制表示中,它们之间有多少个不同的位置(如果有必要,加上前导零)。

形式上,对于每个 ii 求:

max1jnhamming(ai,aj)\max\limits_{1\leq j\leq n} hamming(a_i,a_j)

输入格式

第一行包含两个整数 nnm(1n2m1m20)m(1\leq n\leq 2^ m,1\leq m\leq 20)

第二行包含 nn 个数字 ai(0ai<2m)a_i(0 \leq ai < 2^ m)

输出格式

一行 nn 个数,第 ii 个数表示 aia_i 与数组中其他元素之间的最大哈明距离。

4 4
9 12 9 11
2 3 2 3
4 4
5 7 3 9
2 3 2 3
4 4
3 4 6 10
3 3 2 3

数据规模与约定

Subatask 得分 限制
11 2020 m10m\leq 10
22 3030 m16m\leq 16
33 5050