在某大型工厂的生产线上部署了 N 台具备唯一识别码的传感器设备。为了实现工厂的数字化转型,工程师需要将这些设备通过特定的点对点链路组建成一个统一的数据交换网络。
每台设备都有一个唯一的整数作为其硬件序列号。根据该工厂采用的专用总线协议,若两台序列号分别为 A 和 B 的设备建立直接通信链路,该链路的信号传输增益定义为两序列号的按位异或值,即 Gain = A \oplus B。
为了确保网络的连通性与稳定性,系统构建过程需遵循以下规范:
请根据给定的设备序列号列表,计算出该网络能够达到的最大信号增益总和。
第一行包含一个正整数 N,表示工厂中部署的设备总数。
接下来的 N 行,每行包含一个整数,表示每台设备的硬件序列号。
输出一个整数,表示在满足连通性要求的前提下,全网可能达到的最大信号增益总和。
4 5 13 18 22
81
8 1024 2048 4096 8192 7 15 31 63
64628
12 1023 512 256 128 64 32 16 8 4 2 1 511
10487
在该样例中,共有 4 台设备,其序列号分别为 5, 13, 18, 22。最优的建网链路规划如下:
建立上述三条链路后,所有设备均实现连通,且总增益为 31 + 27 + 23 = 81。
提示:
按位异或运算(\oplus)的定义是:对于两个二进制数,若对应位不同则结果位为 1,相同则结果位为 0。在 C++ 中可以使用 ^ 运算符实现。