粽子真好吃qwq。
传送门
题解
这题还是比较套路的吧。
令$S_i=a_1⊕a_2⊕\cdots⊕a_i$。
则$Al⊕A{l+1}⊕\cdots⊕Ar=S_r⊕S{l-1}$。
首先,对于每一个$r$,找到与$Sr$异或值最大的$S{l-1}$并把它们扔进一个堆里。
然后重复下面的步骤$K$次:
取出堆顶的元素;
更新堆顶元素所对应的$Sr$在删去当前与它异或值最大的$S{l-1}$后与它异或值最大的数;
将更新过后的最大数重新丢进堆里;
可以通过可持久化Trie来完成这个维护的过程。
代码
1 |
|