由于 c_k 是最大值,所以我们可以得到 \text{highbit}(c_k)=\text{highbit}(n)。又因为不同的 c_i 之间两两无交,所以说 \sum_{i=1}^{k-1}c_i< 2^{len}(其中 len 是 n 的二进制表示长度)。而 c_k\geq 2^{len},所以说 \sum_{i=1}^{k-1}c_i<c_k。根据中位数的定义,我们可以发现这个序列的中位数一定为 k。
设 n 的二进制表示中一共有 s 个位置为 1。考虑枚举我们这个母序列中不同数的种类 k,那么我们计数 c 的数量就相当于把每个为 1 的位置分配到一个盒子里去,其方案数就是第二类斯特林数。再枚举最大值映射到的数 x,那么 x 被异或的次数就是 \sum_{k=1}^{s}\dbinom{x}{k-1}\begin{Bmatrix}s\\k\end{Bmatrix}。直接暴力预处理第二类斯特林数,时间复杂度 \operatorname{O}(k^2+mk)