题目链接

 #include <bits/stdc++.h>
using namespace std;
typedef long long ll;
inline int read()
{
int x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
} /********************************************************************/ const int maxn = 1e5+;
int n, m, k;
int a[maxn], belong[maxn];
ll ans[maxn], flag[maxn*]; //注意这里的flag 要大大大大
ll now; struct node{
int l, r;
int id;
}q[maxn]; bool cmp(node x, node y){
if(belong[x.l] == belong[y.l])
return x.r < y.r;
return belong[x.l] < belong[y.l];
} void Update(int x){
now += flag[a[x]^k];
flag[a[x]]++;
} void Delete(int x){
flag[a[x]]--;
now -= flag[a[x]^k];
} int main(){
n = read(); m = read(); k = read();
int sz = ceil(sqrt(n));
for(int i = ;i <= n;i++){
a[i] = read();
belong[i] = (i-)/sz;
}
//前缀异或
for(int i = ;i <= n;i++){
a[i] = a[i-]^a[i];
}
for(int i = ;i <= m;i++){
q[i].l = read(); q[i].r = read();
q[i].id = i;
}
sort(q+, q++m, cmp);
int l = , r = ;
now = ;
flag[] = ;
for(int i = ;i <= m;i++){
int id = q[i].id; //while里面的顺序是不能随意更改的
while(l < q[i].l){
Delete(l-);
l++;
}
while(l > q[i].l){
l--;
Update(l-);
}
while(r < q[i].r){
r++;
Update(r);
}
while(r > q[i].r){
Delete(r);
r--;
}
ans[id] = now;
}
for(int i = ;i <= m;i++){
cout << ans[i] << endl;
}
return ;
}

最新文章

  1. PacBio三代全长转录组/Iso-Seq技术及案例分析
  2. HDU--杭电--1195--Open the Lock--深搜--都用双向广搜,弱爆了,看题了没?语文没过关吧?暴力深搜难道我会害羞?
  3. mysql 分表策略
  4. Java编程风格与命名规范整理
  5. 读取xml文件转成List&lt;T&gt;对象的两种方法(附源码)
  6. php 登陆动作详解
  7. CF#231DIV2:A Good Number
  8. html超级简单实现点赞(收藏)和取消赞效果
  9. R语言︱文本挖掘之中文分词包——Rwordseg包(原理、功能、详解)
  10. gradlew在Travis CI没可执行权限 permission denied
  11. happens-before规则和指令重排
  12. PBRT笔记(7)——反射模型
  13. springMVC--annotation
  14. Iterables vs. Iterators vs. Generators
  15. hashCode方法的作用?
  16. ScheduledExecutorService的使用
  17. Caffe + Ubuntu 14.04 64bit + CUDA 6.5 配置说明2
  18. ural 1091. Tmutarakan Exams(容斥)
  19. ElasticStack系列之十 &amp; 生产中的问题与解决方案
  20. centos7 安装docker-ce ,最新版本docker,docker阿里云加速

热门文章

  1. YUV420数据和字符信息如何利用滤镜方法进行编码?
  2. html5--3.13 表单的新增属性
  3. spring mvc提交日期类型参数
  4. jQuery ajax中的get请求方法汇总
  5. 从exgcd到exCRT
  6. 非旋treap套线段树
  7. hdu 3932 Groundhog Build Home —— 模拟退火
  8. SQL SERVER2008 打开脚本总是报“未能完成操作,存储空间不足”
  9. android手机各大分区详解
  10. su命令,sudo命令,visudo命令