CF1415D XOR-gun 做题记录

给定一个长为 nn 的不降序列,每次操作可以任选相邻的两个数,并将这两个数替换为两个数按位异或的结果,现在需要破坏序列的不降,求最少操作次数,无解输出 1-1

2n1052 \le n \le 10^51ai1091 \le a_i \le 10^9

首先,若序列中有三项的最高位相同(它们必定相邻),那么前两个异或起来就可以消去最高位,显然答案为 11

否则序列中最高位为 2i2^i 的项最多只有两个,那么序列中最多有 6060 个数,直接暴力枚举 [l,k][l,k][k+1,r][k+1,r],用前缀异或和判断能否破坏不降即可。