CF1553H XOR and Distance

题目描述

给定一个由 $n$ 个互不相同元素组成的数组 $a$,以及一个整数 $k$。数组中的每个元素都是不超过 $2^k-1$ 的非负整数。 我们定义一个数 $x$ 的异或距离为 $$ f(x) = \min\limits_{i = 1}^{n} \min\limits_{j = i + 1}^{n} |(a_i \oplus x) - (a_j \oplus x)|, $$ 其中 $\,\oplus\,$ 表示按位异或运算。 对于每个从 $0$ 到 $2^k-1$ 的整数 $x$,你需要计算 $f(x)$。

输入格式

第一行包含两个整数 $n$ 和 $k$($1 \le k \le 19$;$2 \le n \le 2^k$)。 第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$($0 \le a_i \le 2^k-1$)。这些整数互不相同。

输出格式

输出 $2^k$ 个整数,第 $i$ 个数表示 $f(i-1)$。

说明/提示

以第一个样例为例: - 当 $x = 0$ 时,将数组中的每个元素与 $x$ 进行按位异或,得到新数组 $[6, 0, 3]$,最小的两个元素的绝对差为 $3$; - 当 $x = 1$ 时,得到新数组 $[7, 1, 2]$,最小的两个元素的绝对差为 $1$; - 当 $x = 2$ 时,得到新数组 $[4, 2, 1]$,最小的两个元素的绝对差为 $1$; - 当 $x = 3$ 时,得到新数组 $[5, 3, 0]$,最小的两个元素的绝对差为 $2$; - 当 $x = 4$ 时,得到新数组 $[2, 4, 7]$,最小的两个元素的绝对差为 $2$; - 当 $x = 5$ 时,得到新数组 $[3, 5, 6]$,最小的两个元素的绝对差为 $1$; - 当 $x = 6$ 时,得到新数组 $[0, 6, 5]$,最小的两个元素的绝对差为 $1$; - 当 $x = 7$ 时,得到新数组 $[1, 7, 4]$,最小的两个元素的绝对差为 $3$。 由 ChatGPT 4.1 翻译