bzoj 4260 REBXOR —— Trie树
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4260
用 Trie 树可以找出前缀异或的最大值和后缀异或的最大值,拼起来即可;
注意要先加入一个0,表示区间左端点在 0 或右端点在 n+1;
竟然1A了!感动。
——然后发现3个月前做过!!!... https://www.cnblogs.com/Zinn/p/9301536.html
代码如下:
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int const xn=4e5+5,mx=30; int n,cnt,a[xn],pr[xn],sc[xn],c[xn*mx][2],bin[mx+5]; int rd() {int ret=0,f=1; char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=0; ch=getchar();}while(ch>='0'&&ch<='9')ret=(ret<<3)+(ret<<1)+ch-'0',ch=getchar();return f?ret:-ret; } void init() {bin[0]=1;for(int i=1;i<=mx;i++)bin[i]=bin[i-1]*2; } void add(int x) {int nw=0;for(int i=mx;i>=0;i--){bool d=(x&bin[i]);if(!c[nw][d])c[nw][d]=++cnt; nw=c[nw][d];} } int query(int x) {int nw=0,ret=0;for(int i=mx;i>=0;i--){bool d=!(x&bin[i]);if(c[nw][d])nw=c[nw][d],ret+=bin[i];else nw=c[nw][!d];}return ret; } int main() {n=rd(); init(); add(0);// for(int i=1,x,s=0;i<=n;i++){x=rd(); a[i]=x; s^=x;pr[i]=max(pr[i-1],query(s)); add(s);}cnt=0; memset(c,0,sizeof c); add(0);for(int i=n,s=0;i;i--){s^=a[i];sc[i]=max(sc[i+1],query(s)); add(s);}int ans=0;for(int i=1;i<n;i++)ans=max(ans,pr[i]+sc[i+1]);printf("%d\n",ans);return 0; }
转载于:https://www.cnblogs.com/Zinn/p/9804379.html
bzoj 4260 REBXOR —— Trie树相关推荐
- [Bzoj4260]Codechef REBXOR(trie树)
4260: Codechef REBXOR Time Limit: 10 Sec Memory Limit: 256 MB Submit: 1534 Solved: 669 [Submit][St ...
- BZOJ 1590.Secret Message 秘密信息(Trie树) [Usaco2008 Dec]【BZOJ计划】
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 BZOJ简单题合集x Weblink https://hydro.ac/d/bzoj/p/1590 P ...
- BZOJ 3261 最大异或和 可持久化Trie树
题目大意:给定一个序列,提供下列操作: 1.在数组结尾插入一个数 2.给定l,r,x,求一个l<=p<=r,使x^a[p]^a[p+1]^...^a[n]最大 首先我们能够维护前缀和 然后 ...
- bzoj 4260: Codechef REBXOR
Description Solution 记录前缀答案和后缀答案,然后枚举断点合并即可 求出以每一个结尾的最大异或的段,相当于求两个前缀异或值的最大值,用trie树贪心即可 #include<b ...
- BZOJ #3166. [Heoi2013]Alo(可持久化trie树+set)
#3166. [Heoi2013]Alo description solution code BZOJ3166 description Welcome to ALO ( Arithmetic and ...
- [学习笔记]我们追过的神奇异或(Trie树系列)
引言 刚学了\(Trie\)树,写篇博客巩固一下. 题目 首先安利一发\(Trie\)树模板 1.Phone List 2.The XOR largest pair 3.The xor-longest ...
- usaco Cowxor (trie 树)
没想到trie树还可以用在这上面,厉害厉害. [分析]这是字母树的经典应用.首先因为是求xor的最大值,可以用前缀和计算xor值,然后n^2枚举即可. [cpp] view plaincopy for ...
- 字符串匹配算法 -- AC自动机 基于Trie树的高效的敏感词过滤算法
文章目录 1. 算法背景 2. AC自动机实现原理 2.1 构建失败指针 2.2 依赖失败指针过滤敏感词 3. 复杂度及完整代码 1. 算法背景 之前介绍过单模式串匹配的高效算法:BM和KMP 以及 ...
- 字符串匹配数据结构 --Trie树 高效实现搜索词提示 / IDE自动补全
文章目录 1. 算法背景 2. Trie 树实现原理 2.1 Trie 树的构建 2.2 Trie树的查找 2.3 Trie树的遍历 2.4 Trie树的时间/空间复杂度 2.5 Trie 树 Vs ...
最新文章
- 团队-象棋游戏-设计文档
- 太白教你学python---博客分类目录
- leetcode-551-Student Attendance Record I(判断是否出现连续几个相同字符)
- 华为杨超斌:5G千元机有望明年底上市
- 数据结构与算法(C#实现)系列---树
- webRTC之gtest安装使用(十五)
- 浅谈FFT、NTT和MTT
- 《css权威指南》重点摘要
- Linux内核编程的特点
- 欧盟无线产品RED认证
- 串口驱动的3种实现方式
- Hibernate OneToMany中的mappedBy
- 信号与系统 徐亚宁 matlab程序,信号与系统分析 [徐亚宁,李和主编] 2010年版
- 顶级赛事!2021 CCF大数据与计算智能大赛强势来袭~
- html宋体四号字如何设置,宋体小四字体是多少号 首先打开WORD文档,进入界面
- linux版高德导航软件下载,高德导航2017
- 游戏支付接口平台如何选择
- Gas Station (环形加油站)
- 能够打开国内网络,比如百度微信,但是打不开外国网站,该怎么解决(主要是DNS的问题)...
- 盘点2022年nft艺术品交易平台排行榜
热门文章
- 【学习笔记】HTML基础:使用html制作网页
- UVA 10555 - Dead Fraction(数论+无限循环小数)
- Linux下最快速共享目录的方法
- Linux/UNIX不同shell环境下数组的处理
- 关于C/C++中的几个关键字(C基础)
- 未来的GDI:WPF技术纵览[zz]
- python迭代器好处_python迭代器
- python和java哪个有用_python和java哪个好
- 生成唯一订单号_人人皆知却暗藏玄机的“数据库唯一标识符”
- Linux各个版本防火墙操作(CentOS Ubuntu)