bzoj luogu

依然莫队题

思路:看到连续异或想前缀和,发现就是$[l-1,r]$里面有多少对前缀和异或为k

莫队跑一跑时间不能再够用

完结

#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
const int N=100011;
typedef long long lint;
template<typename TP>void read(TP &kk){#define ak *TP phy=0,ioi=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')ioi=-1;ch=getchar();}while(ch>='0'&&ch<='9'){phy=phy*10+ch-'0';ch=getchar();}kk=phy ak ioi;
}
int n,m,k,a[N],s[N],bl[N],bs;
struct ques{int l,r,id;bool operator < (const ques &a)const{return bl[l]==bl[a.l]?r<a.r:bl[l]<bl[a.l];}void init(int i){id=i;read(l),read(r);r++;}
}q[N];lint tmp,prt[N];
int buk[N*2];
void add(int x)
{tmp+=buk[k^x];buk[x]++;
}
void mus(int x)
{buk[x]--;tmp-=buk[k^x];
}void icu()
{int l=1,r=0;for(int i=1;i<=m;i++){while(r<q[i].r){r++;add(s[r]);}while(l>q[i].l){l--;add(s[l]);}while(l<q[i].l){mus(s[l]);l++;}while(r>q[i].r){mus(s[r]);r--;}prt[q[i].id]=tmp;}
}
int main()
{read(n),read(m),read(k);n++;bs=ceil(sqrt(n));for(int i=2;i<=n;i++) read(a[i]),s[i]=s[i-1]^a[i],bl[i]=(i-1)/bs+1;for(int i=1;i<=m;i++) q[i].init(i);sort(q+1,q+1+m);icu();for(int i=1;i<=m;i++) printf("%lld\n",prt[i]);return 0;
}

orz

转载于:https://www.cnblogs.com/rikurika/p/11260816.html

[bzoj5301][Cqoi2018]异或序列相关推荐

  1. [CQOI2018]异或序列

    [CQOI2018]异或序列 题意: 给定1个整数K,离线询问[l,r]中有多少子区间xor和=K. 题解: 异或有个重要的性质:它的逆运算就是自身 我们维护该数列的前缀异或和a[x],表示1到x的区 ...

  2. BZOJ5301:[CQOI2018]异或序列——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=5301 https://www.luogu.org/problemnew/show/P4462 已知 ...

  3. [CQOI2018] 异或序列

    题目链接:戳我 哈哈哈我竟然秒切了省选题 莫队+异或. 考虑异或的性质,一个数同时异或两次等于没有进行操作.那么我们设a[i]为前i个数的异或和,显然对于一个区间\([l,now]\),\(a[l-1 ...

  4. 6759: 异或序列

    6759: 异或序列 时间限制: 1 Sec  内存限制: 128 MB 题目描述 已知一个长度为n的整数数列a1,a2,-,an,给定查询参数l.r,问在al,al+1,-,ar区间内,有多少子序列 ...

  5. Loj 2534 异或序列

    Loj 2534 异或序列 考虑莫队离线处理.每加一个数,直接询问 \(a[x]\oplus k\) 的前/后缀数目即可,减同理. 利用异或的优秀性质,可以维护异或前缀和,容易做到每次 \(O(1)\ ...

  6. 【LOJ】#2534. 「CQOI2018」异或序列

    题解 每个数都处理成前缀和,就相当于问\([l - 1,r]\)有几个数对\(x,y\),\(sum[x] ^ sum[y] = k\) 直接莫队即可 代码 #include <bits/std ...

  7. luogu4462 异或序列

    题目大意 给出n,m,k,有n个数的序列,m次询问一段区间,问异或和等于K的子区间的个数. 题解 本题一看就是莫队.但要解决该题需要以下性质: 定理: $$a\oplus b=c\Leftrighta ...

  8. 【Luogu】P4462异或序列(莫队)

    题目链接 观察什么时候x到y之间那一段可以被统计 xorsum[x-1]^xorsum[y]=k xorsum[x-1]=xorsum[y]^k||xorsum[y]=xorsum[x-1]^k 莫队 ...

  9. CF617E XOR and Favorite Number

    CF617E XOR and Favorite Number 已知一个序列 \(a_1,\ a_2,\ \cdots,\ a_n\) 和 \(k\) ,\(m\) 次询问给出 \(l,\ r\) ,求 ...

  10. Jozky 刷题目录

    文章目录 本目录参考OI-Wiki 还未解决专区 算法基础 枚举 模拟 递归&分治 贪心 排序 前缀和&差分 二分 倍增 构造 搜索 DFS && BFS 双向搜索 启 ...

最新文章

  1. 数据结构图之二(最小生成树--克鲁斯卡尔算法)
  2. NA-NP-IE系列实验18:ip default-network
  3. Python中使用pip install ncmbot时各种错误解决办法
  4. 中国剩余定理及其拓展
  5. comsol分析时总位移代表什么_超弹性材料模型的压缩分析
  6. java程序自动重启_java程序自动重启
  7. Best of Best系列(1)——CVPR
  8. karto探秘之open_karto 第一章 --- 数据结构与类的初始化
  9. mysql中的sql在添加的操作中,id或者是某些字段,需要它添加自带的默认值,或者我们并不想对id或者某个字段赋值
  10. TCP ACK的pingpong交互模式
  11. Matlab K均值图像分割
  12. js脚本锁计算机软件,AutoJs解密工具
  13. knockoutjs 读源码
  14. python requests爬网页加速
  15. 元数据编码和传输标准(METS)
  16. 软件工程师是青春饭吗?
  17. c语言程序设计第三版乌云高娃答案,C语言程序设计教学课件作者第3版乌云高娃补充习题及答案C语言程序设计教学课件作者第3版乌云高娃补充习题及答案第3章补充习题及答案课件.doc...
  18. 30 个案例教你用纯 CSS 实现常见的几何图形
  19. 831数据结构与c语言试题,2018年广东工业大学计算机院831数据结构与C语言[专硕]之C程序设计考研核心题库...
  20. 如何进行APP抓包 ? - 学习/实践

热门文章

  1. 设计模式学习五、代理模式
  2. C#强制关闭Excel进程(通过COM使用Excel时)
  3. xcode 把cocos2d-x 以源码的形式包含进自己的项目适合, 性能分析问题的错误
  4. ios学习路线_OC基础语法
  5. [原]浅谈几种服务器端模型——多进程并发式
  6. 迁移solaris ufs根文件系统至zfs根文件系统
  7. 体验:Office SharePoint foundation 2010 Beta版安装使用
  8. Typora使用技巧--不定期更新
  9. v-for key的作用
  10. # 国王游戏(贪心+大数乘除+微扰法证明)