【Luogu】P4462异或序列(莫队)
2024-09-04 17:42:45
观察什么时候x到y之间那一段可以被统计
xorsum[x-1]^xorsum[y]=k
xorsum[x-1]=xorsum[y]^k||xorsum[y]=xorsum[x-1]^k
莫队维护。
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cctype>
#include<cstdlib>
#include<cmath>
#define maxn 200200
using namespace std;
inline long long read(){
long long num=,f=;
char ch=getchar();
while(!isdigit(ch)){
if(ch=='-') f=-;
ch=getchar();
}
while(isdigit(ch)){
num=num*+ch-'';
ch=getchar();
}
return num*f;
} int blo[maxn];
int xum[maxn];
int sum[maxn];
long long ans[maxn]; struct Que{
int x,y,id;
bool operator <(const Que a)const{
if(blo[x]!=blo[a.x]) return blo[x]<blo[a.x];
return y<a.y;
}
}q[maxn]; int main(){
int n=read(),m=read(),e=read();
int sqt=sqrt(n);
for(int i=;i<=n;++i) blo[i]=(i-)/sqt+;
for(int i=;i<=n;++i) xum[i]=xum[i-]^read();
for(int i=;i<=m;++i) q[i]=(Que){read(),read(),i};
sort(q+,q+m+);
int lef=,rig=;long long now=;
for(int i=;i<=m;++i){
while(lef<q[i].x-){
sum[xum[lef]]--;
now-=sum[xum[lef]^e];
lef++;
}
while(lef>q[i].x-){
lef--;
now+=sum[xum[lef]^e];
sum[xum[lef]]++;
}
while(rig<q[i].y){
rig++;
now+=sum[xum[rig]^e];
sum[xum[rig]]++;
}
while(rig>q[i].y){
sum[xum[rig]]--;
now-=sum[xum[rig]^e];
rig--;
}
ans[q[i].id]=now;
}
for(int i=;i<=m;++i) printf("%lld\n",ans[i]);
return ;
}
最新文章
- Windows 7 上安装Visual Studio 2015 失败解决方案
- 实践总结 - 不可错过的Angular应用技巧
- Arraylist Vector Linkedlist区别和用法 (转)
- 退役?OR 继续
- 关于软件测试人员能力模型的建立(from知乎)
- 强大的代码生成工具MyGeneration
- Universal-Image-Loader 基本使用
- connectionStrings基本配置
- 聊一聊PV和并发、以及计算web服务器的数量的方法【转】
- WPF 杂谈——Trigger触发器
- 【Java学习笔记之二十二】解析接口在Java继承中的用法及实例分析
- ip2long的用法
- AWK读书笔记
- SQL中内连接和外连接的问题!
- Eclipse 查看 WebService 服务请求和响应消息
- Orange——开源机器学习交互式数据分析工具
- Android:XML简介 &; 解析方式对比(DOM、SAX、PULL)
- 拯救安卓手机的数据(无法进入系统只能打开recovery)
- Window应急响应(一):FTP暴力破解
- 基于接口回调详解JUC中Callable和FutureTask实现原理
热门文章
- SPOJ - MATSUM Matrix Summation---二维树状数组
- hdu-1317 XYZZY---Floyd判连通+bellman最短路
- javaweb基础(34)_jdbc处理mysql大数据
- 在DOS界面下快速进入目录的技巧
- Bootstrap 提示工具(Tooltip)插件的事件
- C#继承机制 继承与访问修饰符
- MySql学习笔记01
- dynamic routing between captual
- composer 类加载器,对 <;PSR-4的风格>;、<;PSR-0的风格>;、<;PEAR的风格>; 风格的类的加载
- 格雷码Gray Code详解