XOR and Favorite Number CodeForces - 617E
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的更多相关文章
- XOR and Favorite Number CodeForces - 617E -莫队-异或前缀和
CodeForces - 617E 给n个数, m个询问, 每次询问问你[l, r]区间内有多少对(i, j), 使得a[i]^a[i+1]^......^a[j]结果为k.(注意 i ! = j) ...
- XOR and Favorite Number Codeforces - 617E || [CQOI2018]异或序列
https://www.luogu.org/problemnew/show/P4462 http://codeforces.com/problemset/problem/617/E 这个是莫队裸题了吧 ...
- XOR and Favorite Number CodeForces - 617E(前缀异或+莫队)
题意原文地址:https://blog.csdn.net/chenzhenyu123456/article/details/50574169 题意:有n个数和m次查询,每次查询区间[l, r]问满足a ...
- 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 ...
- 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 ...
- 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 ...
- 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 ...
- 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 ...
- 莫队算法初识~~CodeForces - 617E
E. XOR and Favorite Number time limit per test 4 seconds memory limit per test 256 megabytes input s ...
随机推荐
- ubuntu 16.10 shu rufa meiy ou l e geng xi zhi hou
- Kindle Unlimited 上线的最热书单
Kindle 也给出了一份,到现在为止,在 Kindle Unlimited 上线的最热书单: 1.岛上书店2.一个人的朝圣3.自控力4.嫌疑人 X 的献身5.沉默的大多数(王小波文集)6.跟任何人都 ...
- GP工作室——系统设计
团队作业第二次--系统设计 问题 答案 这个作业属于哪个课程 软件工程 这个作业要求在哪里 作业要求 团队名称 GP工作室 这个作业的目标 对项目软件进行更为详细的系统性设计 按照本游戏的设计要求,我 ...
- Irrelevant Elements UVA-1635 (二项式定理)
vjudge链接 原题链接 乍一看似乎没什么思路,但是写几个简单的例子之后规律就变得很明显. 比如当 n=5 时,每一步计算后的结果如下: a1 a1+a2 a1+2a2+a3 a1+3a2+3a3+ ...
- swagger基本使用指南
Maven依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-s ...
- 快速理解DevOps概念和意义-兼谈SRE
最近几年,由于负责的范围的变化.工作逐渐从某个IT领域或者部门,开始关注到整个IT体系的运转和管理.中间也遇到不少困难,同时也有机会去从更高的层面去学习和实践IT治理.文章主要是总结一下我对DevOp ...
- 一道面试题引发的对 Java 内存模型的一点疑问
一道面试题引发的对Java内存模型的一点疑问 问题描述 如上图所示程序,按道理,子线程会通过 num++ 操作破坏 while 循环的条件,从而终止循环,执行最后的输出操作.但在我的多次运行中,偶尔会 ...
- 三、Linux系统中的文件类型和文件扩展名
.sock文件也是一类特殊的文件,这类文件通常用在网络之间进行数据连接,如:我们可以启动一个程序来监听客户端的要求,客户端可以通过套接字来进行通信: linux中的文件类型 文件类型介绍 Linux系 ...
- java核心技术----Object类
package java.lang; /** * Class {@code Object} is the root of the class hierarchy. * Every class has ...
- C语言的体系结构--main函数存在的必然性(听杨力祥老师的课)
注:不是原创,课堂上听来的,防止遗忘,所以记下来! C语言包括两个部分:数据和函数,当然最终这两个部分都是要进入到计算机的内存中去. 函数在编译后生成可执行代码,存放在代码区:数据分为几种:局部与全局 ...