#ATarc152e. [ARC152E] Xor Annihilation

[ARC152E] Xor Annihilation

题目描述

在数轴上的 x=1,2,3,,2N1x=1,2,3,\ldots,2^N-1 位置上,依次排列着 2N12^N-1 个小球,第 x=ix=i 位置上的小球的重量为 wiw_i。其中,w1,w2,,w2N1w_1,w_2,\ldots,w_{2^N-1}112N12^N-1 的一个排列。此外,你可以选择一个不超过 2N12^N-1 的非负整数 ZZ,并将重量为 ZZ 的小球分别固定在坐标 x=+100100100x=+100^{100^{100}}x=100100100x=-100^{100^{100}} 上。之后,所有小球会同时按照如下规则开始运动:

  • 在任意时刻,对于每个小球,记其所在坐标右侧所有小球的重量的 XOR\mathrm{XOR}RR,左侧所有小球的重量的 XOR\mathrm{XOR}LL。若 R>LR>L,则该小球以每秒 11 的速度向右移动;若 L>RL>R,则向左移动;若 L=RL=R,则静止不动。
  • 若有多个小球同时到达同一坐标(包括从左右方向相遇),它们会合并成一个小球,合并后小球的重量为合并前所有小球重量的 XOR\mathrm{XOR}

请问,有多少个 ZZ 能够使得所有小球在 100100100^{100} 秒内全部静止?

XOR\mathrm{XOR} 是指非负整数 A,BA,B 的按位异或,记作 ABA\oplus B,定义如下:

  • ABA\oplus B 的二进制表示中,每一位 2k2^kk0k\geq 0)上的数等于 A,BA,B 的二进制表示在该位上恰有一个为 11 时为 11,否则为 00

例如,35=63\oplus 5=6(二进制为:011101=110011\oplus 101=110)。 一般地,kk 个非负整数 p1,p2,p3,,pkp_1,p_2,p_3,\dots,p_k 的按位 XOR\mathrm{XOR} 定义为 $(\dots((p\_1\oplus p\_2)\oplus p\_3)\oplus\dots\oplus p\_k)$,且可以证明其与顺序无关。

输入格式

输入通过标准输入给出,格式如下:

NN w1w_1 w2w_2 \ldots w2N1w_{2^N-1}

输出格式

输出一个整数,表示满足条件的 ZZ 的个数。

样例 1

输入

2
1 2 3

输出

1

样例 2

输入

3
7 1 2 3 4 5 6

输出

2

说明/提示

数据范围

  • 2N182\leq N\leq 18
  • 1wi2N11\leq w_i\leq 2^N-1
  • iji\neq jwiwjw_i\neq w_j
  • 输入的所有值均为整数

样例解释 1

我们将重量为 ii 的小球简称为 ii。例如,当 Z=0Z=0 时,初始时 1122 向右移动,33 向左移动。随后 2233 相遇并合并,合并后的小球开始向左移动。最终,当 1133 的所有小球合并后,合并后的小球静止。因此,Z=0Z=0 满足条件。而当 Z=3Z=3 时,1122 向左移动,33 向右移动,所有小球会朝着固定的重量移动很长时间,因此 Z=3Z=3 不满足条件。实际上,只有 Z=0Z=0 满足条件,所以答案为 11

由 ChatGPT 4.1 翻译