莫队 Codeforces Round #340 (Div. 2) E

Posted 不知姓名的黑猫君

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了莫队 Codeforces Round #340 (Div. 2) E相关的知识,希望对你有一定的参考价值。

题目大意:给你一个长度为n的序列,有m个询问,每次询问一个区间[L,R],表示这个区间内,有多少的a[i]^a[i+1].....^a[j]=k。

 

思路:莫队去搞就好了

我们定义pre[i]=a[1]^a[2]^....a[i],然后我们再去更新就好了,这里,我们定义区间[L,R]表示我们所要询问的区间即可。然后这里会有一个疑惑,就是为什么while(l<Q[i].l) { Delete(l-1); l++; }和while(l>Q[i].l) { l--; Updata(l-1); }是这样子呢,这样子的话L和R的区间岂不是少删除了一个区间吗——但是其实不是这样的,因为我们要就比如说目前我们要求[3,5]这个区间,我们要保留pre[2]这个区间,这样的话,才能保证pre[i]^pre[2]才是我们所需要的区间

 

具体代码看卿学姐的吧:链接

 

以上是关于莫队 Codeforces Round #340 (Div. 2) E的主要内容,如果未能解决你的问题,请参考以下文章

Codeforces Round #340 (Div. 2) E. XOR and Favorite Number 莫队算法

Codeforces Round #340 (Div. 2) E XOR and Favorite Number 莫队板子

Codeforces Round #340 (Div. 2) E. XOR and Favorite Number 莫队算法 + 异或和前缀和的巧妙

CodeFroce Round 340 div2 E XOR and Favorite Number莫队算法

「知识学习&日常训练」莫队算法(Codeforce Round #340 Div.2 E)

Codeforces Round #340 (Div. 2) B