a[i]^a[i+1]……a[j]=k;

处理前缀和pre[i]

那么上式可以表示为pre[i-1]^pre[j]=k;

#include<bits/stdc++.h>
using namespace std;
const int N=1<<20;
struct node{
int l,r;
int id;
}q[N];
int pos[N];
long long ans[N];
//每个前缀值出现的次数
long long flag[N];
int a[N];
bool cmp(node a,node b)
{
//如果左端点在同一块中,按右端点排序
if(pos[a.l]==pos[b.l])
return a.r<b.r;
//否则,按照块来排序
return pos[a.l]<pos[b.l];
}
int n,m,k;
int l=1,r=0;
long long Ans=0;
void add(int x)
{
//当前 前缀和出现的次数--
Ans+=flag[a[x]^k];
flag[a[x]]++;
}
void del(int x)
{
//当前 前缀和出现的次数--
flag[a[x]]--;
//总的减去
Ans-=flag[a[x]^k];
}
int main()
{
cin>>n>>m>>k;
int sz=sqrt(n);
for(int i=1;i<=n;i++)
{
cin>>a[i];
//处理前缀和
a[i]=a[i]^a[i-1];
//分块
pos[i]=i/sz;
}
for(int i=1;i<=m;i++)
{
cin>>q[i].l>>q[i].r;
q[i].id=i;
}
sort(q+1,q+1+m,cmp);
flag[0]=1;
for(int i=1;i<=m;i++)
{
while(l<q[i].l)
{
del(l-1);
l++;
}
while(l>q[i].l)
{
l--;
add(l-1);
}
while(r<q[i].r)
{
r++;
add(r);
}
while(r>q[i].r)
{
del(r);
r--;
}
ans[q[i].id]=Ans;
}
for(int i=1;i<=m;i++)
cout<<ans[i]<<endl;
return 0;
}

XOR and Favorite Number CodeForces - 617E的更多相关文章

  1. XOR and Favorite Number CodeForces - 617E -莫队-异或前缀和

    CodeForces - 617E 给n个数, m个询问, 每次询问问你[l, r]区间内有多少对(i, j), 使得a[i]^a[i+1]^......^a[j]结果为k.(注意 i ! =  j) ...

  2. XOR and Favorite Number Codeforces - 617E || [CQOI2018]异或序列

    https://www.luogu.org/problemnew/show/P4462 http://codeforces.com/problemset/problem/617/E 这个是莫队裸题了吧 ...

  3. XOR and Favorite Number CodeForces - 617E(前缀异或+莫队)

    题意原文地址:https://blog.csdn.net/chenzhenyu123456/article/details/50574169 题意:有n个数和m次查询,每次查询区间[l, r]问满足a ...

  4. codeforces 617E E. XOR and Favorite Number(莫队算法)

    题目链接: E. XOR and Favorite Number time limit per test 4 seconds memory limit per test 256 megabytes i ...

  5. Codeforeces 617E XOR and Favorite Number(莫队+小技巧)

    E. XOR and Favorite Number time limit per test 4 seconds memory limit per test 256 megabytes input s ...

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

    E. XOR and Favorite Number 题目连接: http://www.codeforces.com/contest/617/problem/E Descriptionww.co Bo ...

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

    任意门:http://codeforces.com/problemset/problem/617/E E. XOR and Favorite Number time limit per test 4 ...

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

    题目链接:http://codeforces.com/problemset/problem/617/E E. XOR and Favorite Number time limit per test 4 ...

  9. 莫队算法初识~~CodeForces - 617E

    E. XOR and Favorite Number time limit per test 4 seconds memory limit per test 256 megabytes input s ...

随机推荐

  1. ubuntu 16.10 shu rufa meiy ou l e geng xi zhi hou

  2. Kindle Unlimited 上线的最热书单

    Kindle 也给出了一份,到现在为止,在 Kindle Unlimited 上线的最热书单: 1.岛上书店2.一个人的朝圣3.自控力4.嫌疑人 X 的献身5.沉默的大多数(王小波文集)6.跟任何人都 ...

  3. GP工作室——系统设计

    团队作业第二次--系统设计 问题 答案 这个作业属于哪个课程 软件工程 这个作业要求在哪里 作业要求 团队名称 GP工作室 这个作业的目标 对项目软件进行更为详细的系统性设计 按照本游戏的设计要求,我 ...

  4. Irrelevant Elements UVA-1635 (二项式定理)

    vjudge链接 原题链接 乍一看似乎没什么思路,但是写几个简单的例子之后规律就变得很明显. 比如当 n=5 时,每一步计算后的结果如下: a1 a1+a2 a1+2a2+a3 a1+3a2+3a3+ ...

  5. swagger基本使用指南

    Maven依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-s ...

  6. 快速理解DevOps概念和意义-兼谈SRE

    最近几年,由于负责的范围的变化.工作逐渐从某个IT领域或者部门,开始关注到整个IT体系的运转和管理.中间也遇到不少困难,同时也有机会去从更高的层面去学习和实践IT治理.文章主要是总结一下我对DevOp ...

  7. 一道面试题引发的对 Java 内存模型的一点疑问

    一道面试题引发的对Java内存模型的一点疑问 问题描述 如上图所示程序,按道理,子线程会通过 num++ 操作破坏 while 循环的条件,从而终止循环,执行最后的输出操作.但在我的多次运行中,偶尔会 ...

  8. 三、Linux系统中的文件类型和文件扩展名

    .sock文件也是一类特殊的文件,这类文件通常用在网络之间进行数据连接,如:我们可以启动一个程序来监听客户端的要求,客户端可以通过套接字来进行通信: linux中的文件类型 文件类型介绍 Linux系 ...

  9. java核心技术----Object类

    package java.lang; /** * Class {@code Object} is the root of the class hierarchy. * Every class has ...

  10. C语言的体系结构--main函数存在的必然性(听杨力祥老师的课)

    注:不是原创,课堂上听来的,防止遗忘,所以记下来! C语言包括两个部分:数据和函数,当然最终这两个部分都是要进入到计算机的内存中去. 函数在编译后生成可执行代码,存放在代码区:数据分为几种:局部与全局 ...