记 为 中 的个数的奇偶性。将每个元素分别作为一个区间时,得到的异或值为 。
如果将区间 内的单元素区间合并为一个区间,异或值的变化量为 。因此可以选择若干互不相交的区间,将对应的变化量与初始值异或。
当区间的 MEX 为 时,变化量为 。当 MEX 为 时,区间内没有 。若 的个数为奇数,变化量仍为 ;否则,可以将该区间替换为其中两个相邻出现的 之间的区间,且这两个 之间没有 。替换后的变化量为 。
考虑 MEX 为 的区间。在区间内部选取包含 的最短子区间 。其两端的值都小于 ,并且在子区间内各出现恰好一次。称这样的区间为 。枚举左端点并维护元素出现次数和 MEX,即可枚举这些区间。
如果去掉的部分含有偶数个 ,关键区间本身就能产生相同的变化量。否则,可以向左侧或右侧扩展到最近的一个 ,并选择落在原区间内部的一侧。这样恰好增加一个 ;由于原区间不包含 ,MEX 不会改变。因此,只需要考虑所有关键区间,以及不会改变 MEX 的向左或向右的单侧扩展区间。候选区间的总数为 。
令 为在前缀 中选择若干互不相交的候选区间后,能够得到的变化量异或值集合。转移时可以跳过位置 ,也可以选择任意一个以 为右端点的候选区间 ,将其变化量与 中的每个值异或。
设整个序列的 MEX 为 ,则任意子区间的 MEX 都不超过 。所有异或值均小于 。使用位集实现 DP,时间复杂度为 ,空间复杂度为 。最终答案为所有 中 的最大值。