博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[洛谷P4735]最大异或和
阅读量:6689 次
发布时间:2019-06-25

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

题目大意:有一串初始长度为$n$的序列$a$,有两种操作:

  1. $A\;x:$在序列末尾加一个数$x$
  2. $Q\;l\;r\;x:$找一个位置$p$,满足$l\leqslant p\leqslant r$,使得: $a_p\oplus a_{p+1}\oplus\dots\oplus a_n\oplus x$最大,输出最大是多少。

题解:把序列前缀和,变成$S$,就变成了在$[l-2,r-1]$区间内找一个数$S_p$,使得$S_p\oplus S_n\oplus x$最大。可持久化$trie$

卡点:

 

C++ Code:

#include 
#include
#define M 24#define maxn 600010 #define N (maxn * (M + 1))int n, m;int __root__[maxn], *root = __root__ + 1, idx;int nxt[N][2], V[N], sum;void insert(int &rt, int x, int dep) { nxt[++idx][0] = nxt[rt][0], nxt[idx][1] = nxt[rt][1], V[idx] = V[rt] + 1, rt = idx; if (!~dep) return ; int tmp = x >> dep & 1; insert(nxt[rt][tmp], x, dep - 1);}int query(int x, int L, int R) { int res = 0; for (int i = M; ~i; i--) { int tmp = x >> i & 1; if (V[nxt[R][!tmp]] - V[nxt[L][!tmp]]) L = nxt[L][!tmp], R = nxt[R][!tmp], res |= 1 << i; else L = nxt[L][tmp], R = nxt[R][tmp]; } return res;}int main() { std::ios::sync_with_stdio(false), std::cin.tie(0), std::cout.tie(0); std::cin >> n >> m; insert(root[0], 0, M); for (int i = 1, x; i <= n; i++) { std::cin >> x; insert(root[i] = root[i - 1], sum ^= x, M); } while (m --> 0) { char op; int l, r, x; std::cin >> op >> l; if (op == 'A') { root[n + 1] = root[n]; insert(root[++n], sum ^= l, M); } else { std::cin >> r >> x; std::cout << query(x ^ sum, root[l - 2], root[r - 1]) << '\n'; } } return 0;}

  

转载于:https://www.cnblogs.com/Memory-of-winter/p/10024652.html

你可能感兴趣的文章
Kotlin 设计模式系列之单例模式
查看>>
阅读SSH的ERP项目【第二篇】
查看>>
如何有效的避免OOM,温故Java中的引用
查看>>
Objective C基础教程 第一章 启程
查看>>
Android开发人员不得不学习的JavaScript基础(一)
查看>>
阿里云在LC3大会上透露未来要做的两件事
查看>>
关于Socket,看我这几篇就够了(三)原来你是这样的Websocket
查看>>
NSHipster: NSRegularExpression 中文版
查看>>
Android 开发中不得不知道的 Tips 集合 (持续更新 ing)
查看>>
中小型公司对于Spring Cloud的选择与思考
查看>>
javascript函数全解
查看>>
报警系统QuickAlarm之报警规则的设定与加载
查看>>
资深阿里程序猿深入讲解《微服务架构在阿里的演化》
查看>>
学习笔记|AS入门(五) 高级控件篇(下)
查看>>
企业分布式微服务云SpringCloud SpringBoot mybatis (十)Spring Boot多数据源配置与使用Spring-data-jpa支持...
查看>>
【CLI】使用 Curl 下载文件实时进度条显示
查看>>
数据结构(二)LinkedList源码分析
查看>>
ES6, Angular,React和ABAP中的String Template(字符串模板)
查看>>
Android 滤镜效果和颜色通道过滤
查看>>
Tomcat9的启动和终止
查看>>