首页 > 其他 > 详细

loj#6187. Odd

时间:2021-08-17 20:49:26      阅读:20      评论:0      收藏:0      [点我收藏+]

首先有个性质,假如这个区间合法,那么这个区间的异或和等于这个区间出现过的数的异或和。

出现过的数自然想到 HH 的项链,考虑记 $las$,然后一个数只对 $[las_{a[i]}+1,i]$ 有贡献。

记 $ s_i=v[1] \ xor  \ v[2] \ xor \ ...  \ v[i]$ 即前缀异或和。

$sum1$ 为区间出现过的次数的异或和。

 那么,答案就是 $s_y  \ xor \  s_{x-1} = sum1_y$。

考虑维护下这东西即可,大体思路应该是这样,但具体怎么实现可能有些没提到(因为我还不会没写)

upt:由于是异或,正确性不一定能保证。可以考虑对每个权值随机赋值加强正确性。

loj#6187. Odd

原文:https://www.cnblogs.com/xugangfan/p/15153175.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!