码迷,mamicode.com
首页 > 其他好文 > 详细

CQOI2018 异或序列 【莫队+xor前缀和】

时间:2018-11-08 16:25:51      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:targe   一个   复杂   bsp   xor   区间   show   而且   ==   

CQOI2018 异或序列

 

题面见链接。。。(复制过来markdown。。。)

题解:

先来总结一下:一般题目中:询问你几个区间 [l,r],并问区间内……答案的数目,而且涉及到前缀和(如:sum 或 xor)

这样一般来说都往莫队那儿想想,先看看复杂度能不能过 n*sqrt(n)。

本题因为xor 具有前缀和性质。还需记录一个数组b[i],表示 当前莫队的区间l,r中异或和为 i 的子序列数量。

当我们需要加入a[x]这个数时,对答案的贡献为b[a[x]^k],因为要是a[x]对答案有贡献,应该a[x] xor m==k -->  m=k^a[x]

去掉这个数时同理。

这样莫队就完美A题了。

 

 

 

fighting fighting fighting!!!

CQOI2018 异或序列 【莫队+xor前缀和】

标签:targe   一个   复杂   bsp   xor   区间   show   而且   ==   

原文地址:https://www.cnblogs.com/Frank-King/p/9929174.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!