题意:给出一个长度为 的自然数集合 。
对于非空自然数集合 ,定义函数
为:在(十进制)各个位上取最小值组成新数的数值。
定义函数 。
求
的异或和。
,,时限 。
套路题。
题目要求我们对每个 求出 的子集 的和的平方。
定义十进制位运算 ,运算规则为每一位取 。不难验证其交换律结合律。 即为 中所有元素的
和。由于各位独立,我们可以将十进制数视为向量。
我们欲求的是: (空集特殊处理)
若十进制向量
每一位都小于等于 ,称
。
考虑计算超集和,再差分,即令:
将 进行高维差分即可得到
。
注意到
当且仅当
中的每一项都
,可以简化条件。记
是
的所有数的集合,则 $$
$$
为了求出 ,我们需要 只需三次高维后缀和。
设值域为 ,复杂度为 。