博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj 3261: 最大异或和
阅读量:4602 次
发布时间:2019-06-09

本文共 430 字,大约阅读时间需要 1 分钟。

题意:

给定一个非负整数序列 {a},初始长度为 N。       

有   M个操作,有以下两种操作类型:
1 、A x:添加操作,表示在序列末尾添加一个数 x,序列的长度 N+1。
2 、Q l r x:询问操作,你需要找到一个位置 p,满足 l<=p<=r,使得:
a[p] xor a[p+1] xor ... xor a[N] xor x 最大,输出最大是多少。

n<=1e5,a[i]<=1e7

题解:

和这题的思路基本一致,越前面的位对其影响越大,所以从前到后考虑

其次,在查找的时候其实就类似于字符串的匹配,所以用trie树

由于修改操作的出现,应考虑可持久化trie

即与zkw线段树一样第一维维护前x个节点的前缀和,第二维维护字符串

而每次查询时,只需查询两个前缀相减是否大于0,判断该字符串是否存在

而修改时只需新建节点,在变动的整条链上++

代码:

 

转载于:https://www.cnblogs.com/yinwuxiao/p/8025695.html

你可能感兴趣的文章
c++内存模型,变量和函数
查看>>
前端的焦虑
查看>>
Java程序设计第二次作业
查看>>
HDU 1004 MAP【STL__map_的应用】
查看>>
ChartCtrl源码剖析之——CChartGrid类
查看>>
关于JUnit的测试
查看>>
CF1142A The Beatles
查看>>
java异常处理规范
查看>>
枚举类型单例模式的安全性
查看>>
latex相关
查看>>
DELL T110 安装windows server 2003
查看>>
Binding中的TargetNullValue属性(项目)
查看>>
grunt之clean、copy
查看>>
BI应用中的三大矛盾(zz)
查看>>
Beam概念学习系列之PCollection数据集
查看>>
VMware里Ubuntukylin-14.04-desktop的VMware Tools安装图文详解
查看>>
【Python使用】使用pip安装卸载Python包(含离线安装Python包)未完成???
查看>>
三角形外心坐标的计算公式
查看>>
一语道破项目管理知识体系五大过程组
查看>>
C# 备份、还原、拷贝远程文件夹
查看>>