【Luogu】P4462异或序列(莫队)
题目链接
观察什么时候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=0,f=1;char ch=getchar();while(!isdigit(ch)){if(ch=='-') f=-1;ch=getchar();}while(isdigit(ch)){num=num*10+ch-'0';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=1;i<=n;++i) blo[i]=(i-1)/sqt+1;for(int i=1;i<=n;++i) xum[i]=xum[i-1]^read();for(int i=1;i<=m;++i) q[i]=(Que){read(),read(),i};sort(q+1,q+m+1);int lef=1,rig=0;long long now=0;for(int i=1;i<=m;++i){while(lef<q[i].x-1){sum[xum[lef]]--;now-=sum[xum[lef]^e];lef++;}while(lef>q[i].x-1){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=1;i<=m;++i) printf("%lld\n",ans[i]);return 0; }
转载于:https://www.cnblogs.com/cellular-automaton/p/8886315.html
【Luogu】P4462异或序列(莫队)相关推荐
- 洛谷 - P3246 [HNOI2016]序列(莫队+单调栈)
题目链接:点击查看 题目大意:给出一个长度为 nnn 的序列,再给出 mmm 次询问,每次询问需要回答一个区间 [l,r][l,r][l,r] 内所有子区间的最小值之和 题目分析:因为可以离线,所以考 ...
- P3246 [HNOI2016]序列 莫队 + ST表 + 单调栈
传送门 文章目录 题意: 思路: Update 题意: 思路: 比较神奇的一个题,这里先介绍莫队的离线解法. 不难发现,用莫队来做最大的难点就是在进行区间移动的时候如何快速计算贡献. 比如[l,r]− ...
- C++ 莫队算法(转)
胡小兔的良心莫队教程:莫队.带修改莫队.树上莫队 在开始学习莫队之前,照例先甩一道例题:BZOJ 1878 HH的项链. 题意:求区间内数的个数,相同的数只算一次. 在我关于这道题的上一篇题解中,我使 ...
- P4867-Gty的二逼妹子序列【平衡结合,莫队,分块】
正题 题目链接:https://www.luogu.com.cn/problem/P4867 题目大意 一个序列要求支持询问一个区间[l,r][l,r][l,r]内在[a,b][a,b][a,b]之间 ...
- hdu 4358(莫队算法+dfs序列)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4358 解题思路:用dfs求出整棵树的dfs序列,这样以u为根节点的子树就转化到相对应的区间上了.由于是 ...
- 【HNOI2016】序列【莫队】【单调栈】【ST表】
题意:给定序列 aia_iai,qqq 次询问 [l,r][l,r][l,r] 所有子区间最小值之和. n,q≤105n,q\leq 10^5n,q≤105 这种题一眼看上去是离线线段树,但这题每移 ...
- P3246 [HNOI2016]序列(莫队+单调栈+ST表)
[HNOI2016]序列 Tea神题解 Kelin神题解 对于莫队算法最主要的是如何快速算出[l,r]→[l,r+1][l,r]\to[l,r+1][l,r]→[l,r+1]对答案的贡献的变化. 当询 ...
- [Bzoj4540][Hnoi2016] 序列(莫队 + ST表 + 单调队列)
4540: [Hnoi2016]序列 Time Limit: 20 Sec Memory Limit: 512 MB Submit: 1567 Solved: 718 [Submit][Statu ...
- [HNOI2016] 序列(线段树 + 莫队 + 倍增)
problem luogu-P3246 心路历程+卡常历程+问题存疑 一直在想莫队的做法.发现左右指针的移动对应一段左/右端点固定的子序列,然后可以一个数代表一段相同的贡献. 就开始求 lsti,nx ...
最新文章
- VS调试js学习总结
- php atime,PHP DirectoryIterator getATime()用法及代码示例
- SAP Data Intelligence API返回错误消息 - Fordidden cross-site request
- 基于电子邮件的InfoPath表单发布的注意点 [Infopath 2007]
- mips汇编计算开方_读美国伊利诺伊理工大学计算机科学硕士能学到什么?
- python怎么判断输入的是不是数字_如何在PYTHON里判断字符串是否为数字
- Hi Windows Live Writer
- ASP.NET Excel数据导入数据库
- 微软物联网平台再推新!
- 可视化——matploblib 解决中文显示的问题
- mysql 新建用户并赋予远程访问权限
- ASP.NET WEB API简介
- vue -【nextTick】-【过度与动画】-【插槽】-【配置代理服务器】-【vuex】-【路由】
- Android将APP做成一个launcher
- 《流浪方舟》- 废土世界的冒险之旅
- tensorflow2.x实现人脸关键点检测
- qt各版本下载链接(含Qt5.5下载链接)
- iPhone 中常用、好用的提醒类软件(闹钟、提醒事项、日历、滴答清单)
- Android chrisbanes-PhotoView 使用案例
- 在 Pages文稿中怎样给文本添加阴影、外框?