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

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

题解:可持久trie树 类似于可持久化线段树那样 每次更新一个值实质上只更新一条链即可 然后维护前缀异或和 问题转化为求在[l,r]区间内选一个前缀异或和异或上(x^sum[N])最大 然后01字典树贪心即可

#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define mp make_pair#define pb push_back#define pii pair
#define link(x) for(edge *j=h[x];j;j=j->next)#define inc(i,l,r) for(int i=l;i<=r;i++)#define dec(i,r,l) for(int i=r;i>=l;i--)const int MAXN=6e5+10;const double eps=1e-8;#define ll long longusing namespace std;struct edge{int t,v;edge*next;}e[MAXN<<1],*h[MAXN],*o=e;void add(int x,int y,int vul){o->t=y;o->v=vul;o->next=h[x];h[x]=o++;}ll read(){ ll x=0,f=1;char ch=getchar(); while(!isdigit(ch)){if(ch=='-')f=-1;ch=getchar();} while(isdigit(ch))x=x*10+ch-'0',ch=getchar(); return x*f;}typedef struct node{ int l,r,sum;}node;node d[31*MAXN];int cnt,vul,rt[MAXN];int a[MAXN],sum[MAXN];void insert(int x,int k){ for(int i=29;i>=0;i--){ if(k&(1<
=0;i--){ if(k&(1<

 

3261: 最大异或和

Time Limit: 10 Sec  Memory Limit: 512 MB
Submit: 3186  Solved: 1315
[][][]

Description

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

Input

第一行包含两个整数 N  ,M,含义如问题描述所示。   

第二行包含 N个非负整数,表示初始的序列 A 。 
接下来 M行,每行描述一个操作,格式如题面所述。   

Output

假设询问操作有 T个,则输出应该有 T行,每行一个整数表示询问的答案。

Sample Input

5 5
2 6 4 3 6
A 1
Q 3 5 4
A 4
Q 5 7 0
Q 3 6 6
对于测试点 1-2,N,M<=5 。
对于测试点 3-7,N,M<=80000 。
对于测试点 8-10,N,M<=300000 。
其中测试点 1, 3, 5, 7, 9保证没有修改操作。
0<=a[i]<=10^7。

Sample Output

4
5
6

转载于:https://www.cnblogs.com/wang9897/p/9718084.html

你可能感兴趣的文章
LOJ 2537 「PKUWC2018」Minimax
查看>>
使用java中replaceAll方法替换字符串中的反斜杠
查看>>
Some configure
查看>>
流量调整和限流技术 【转载】
查看>>
1 线性空间
查看>>
VS不显示最近打开的项目
查看>>
MyEclipse安装Freemarker插件
查看>>
DP(动态规划)
查看>>
chkconfig
查看>>
pyQt 每日一练习 -- 登录框
查看>>
smartupload 上传文件时 把页面编码改成gbk 解决乱码
查看>>
EPS是什么格式
查看>>
Python的数据库操作(Sqlalchemy)
查看>>
2.抽取代码(BaseActivity)
查看>>
夏天过去了, 姥爷推荐几套来自smashingmagzine的超棒秋天主题壁纸
查看>>
反射的所有api
查看>>
css 定位及遮罩层小技巧
查看>>
项目中非常有用并且常见的ES6语法
查看>>
[2017.02.23] Java8 函数式编程
查看>>
sprintf 和strcpy 的差别
查看>>