#ATarc152e. [ARC152E] Xor Annihilation
[ARC152E] Xor Annihilation
题目描述
在数轴上的 位置上,依次排列着 个小球,第 位置上的小球的重量为 。其中, 是 到 的一个排列。此外,你可以选择一个不超过 的非负整数 ,并将重量为 的小球分别固定在坐标 和 上。之后,所有小球会同时按照如下规则开始运动:
- 在任意时刻,对于每个小球,记其所在坐标右侧所有小球的重量的 为 ,左侧所有小球的重量的 为 。若 ,则该小球以每秒 的速度向右移动;若 ,则向左移动;若 ,则静止不动。
- 若有多个小球同时到达同一坐标(包括从左右方向相遇),它们会合并成一个小球,合并后小球的重量为合并前所有小球重量的 。
请问,有多少个 能够使得所有小球在 秒内全部静止?
是指非负整数 的按位异或,记作 ,定义如下:
- 的二进制表示中,每一位 ()上的数等于 的二进制表示在该位上恰有一个为 时为 ,否则为 。
例如,(二进制为:)。 一般地, 个非负整数 的按位 定义为 $(\dots((p\_1\oplus p\_2)\oplus p\_3)\oplus\dots\oplus p\_k)$,且可以证明其与顺序无关。
输入格式
输入通过标准输入给出,格式如下:
输出格式
输出一个整数,表示满足条件的 的个数。
样例 1
输入
2
1 2 3
输出
1
样例 2
输入
3
7 1 2 3 4 5 6
输出
2
说明/提示
数据范围
- 当 时
- 输入的所有值均为整数
样例解释 1
我们将重量为 的小球简称为 。例如,当 时,初始时 和 向右移动, 向左移动。随后 和 相遇并合并,合并后的小球开始向左移动。最终,当 到 的所有小球合并后,合并后的小球静止。因此, 满足条件。而当 时, 和 向左移动, 向右移动,所有小球会朝着固定的重量移动很长时间,因此 不满足条件。实际上,只有 满足条件,所以答案为 。
由 ChatGPT 4.1 翻译