题目链接 Solution 有点巧的莫队. 考虑到区间 \([L,R]\) 的异或和也即 \(sum[L-1]~\bigoplus~sum[R]\) ,此处\(sum\)即为异或前缀和. 然后如何考虑异或和为 \(k\) ? 我们做完前缀和后,可以发现对于\(sum[i]\)这个起点,异或上\(k\bigoplus{sum[i]}\)则可以异或成\(k\). 且由于 \(k\leq{100000}\) ,所以可以开一个数组记录每一个异或值的出现次数. 然后就可以 \(O(1)\) 修改了,套个莫…
Description 已知一个长度为 n 的整数数列 a[1],a[2],…,a[n] ,给定查询参数 l.r ,问在 [l,r] 区间内,有多少连续子 序列满足异或和等于 k . 也就是说,对于所有的 x,y (l≤x≤y≤r),能够满足a[x]^a[x+1]^…^a[y]=k的x,y有多少组. Input 输入文件第一行,为3个整数n,m,k. 第二行为空格分开的n个整数,即ai,a2,….an. 接下来m行,每行两个整数lj,rj,表示一次查询. 1≤n,m≤105,O≤k,ai≤105…
5301: [Cqoi2018]异或序列 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 204  Solved: 155[Submit][Status][Discuss] Description 已知一个长度为 n 的整数数列 a[1],a[2],…,a[n] ,给定查询参数 l.r ,问在 [l,r] 区间内,有多少连续子 序列满足异或和等于 k . 也就是说,对于所有的 x,y (l≤x≤y≤r),能够满足a[x]^a[x+1]^…^a[y]…
链接:https://www.lydsy.com/JudgeOnline/problem.php?id=5301 题面; 5301: [Cqoi2018]异或序列 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 476  Solved: 358[Submit][Status][Discuss] Description 已知一个长度为 n 的整数数列 a[1],a[2],…,a[n] ,给定查询参数 l.r ,问在 [l,r] 区间内,有多少连续子…
题意 题目链接 Sol 一开始以为K每次都是给出的想了半天不会做. 然而发现读错题了维护个前缀异或和然后直接莫队搞就行,. #include<bits/stdc++.h> #define Pair pair<int, int> #define MP(x, y) make_pair(x, y) #define fi first #define se second //#define int long long #define LL long long #define Fin(x) {…
题意:给定数列 \(a\) 和 \(k\) ,询问区间 \([l,r]\) 中有多少子区间满足异或和为 \(k\). 莫队.我们可以记录前缀异或值 \(a_i\),修改时,贡献为 \(c[a_i\bigoplus k]\) . #include<cstdio> #include<iostream> #include<algorithm> #include<cmath> #include<cstring> #define R register in…
题目描述 已知一个长度为n的整数数列 $a_1,a_2,...,a_n$​,给定查询参数l.r,问在 $a_l,a_{l+1},...,a_r$​ 区间内,有多少子序列满足异或和等于k.也就是说,对于所有的x,y (I ≤ x ≤ y ≤ r),能够满足$a_x\bigoplus a_{x+1} \bigoplus ... \bigoplus a_y = k$的x,y有多少组. 思路 记一个异或前缀和 val,问题就转换成有多少对数异或等于 k 直接上莫队 代码 #include <bits/s…
莫队板子 用于复习 #include <cstdio> #include <cstdlib> #include <algorithm> #include <cmath> #include <cstring> #include <map> #define Sqr(x) ((x)*(x)) using namespace std; const int N = 1e5 + 5; struct Q{ int x, y, id; }q[N];…
题目描述 已知一个长度为n的整数数列a1,a2,...,an,给定查询参数l.r,问在al,al+1,...,ar​区间内,有多少子序列满足异或和等于k.也就是说,对于所有的x,y (I ≤ x ≤ y ≤ r),能够满足ax⨁ax+1⨁...⨁ay=ka_x \bigoplus a_{x+1} \bigoplus ... \bigoplus a_y = kax​⨁ax+1​⨁...⨁ay​=k的x,y有多少组. 输入格式 输入文件第一行,为3个整数n,m,k. 第二行为空格分开的n个整数,即a…
莫队是一种对于询问的离线算法 时间复杂度:O(\(n \sqrt n\)) 大致思想就是 首先将询问离线,然后对原序列分块,使得每一个\(l和r\)都在一个块里 然后按照左节点排序,若所在的块相等,就比较右节点 int cmp1(Node a,Node b) { if (pos[a.l]==pos[b.l]) return a.r<b.r; return a.l<b.l; } 排序之后,我们再来分析一下时间复杂度:接下来我们会看到神奇的事情!! 刚才分析此方法的时候,我们是从L和R的偏移量分析…