#arc152e. [arc152_e]Xor Annihilation
[arc152_e]Xor Annihilation
一条直线上有 个初始坐标分别为 的动点。其中坐标为 的点有一个权值 。
现在你要在 和 坐标处各加一个不超过 非负权值 ,然后 个点会按照下列规则同时从初始坐标开始移动:
-
每个单位时间内,记严格小于一个点的坐标的权值异或和为 ,严格大于这个点的权值异或和为 。当 时,这个点会以 个单位长度每个单位时间的速度向右移动; 时则会以同样速度向左移动; 时,这个点会静止不动。
-
当两个点在同一时间到达同一坐标时,这两个点会合并成一个点,新点的权值为两个点权值的异或和。
请求出可以使所有点在 个单位时间内静止下来的 的个数。
(注: 和 处只是增加了 的权值,初始时并没有动点。)
保证 , 且 时 ,输入的所有数均为整数。