BZOJ4260异或和
4260: Codechef REBXOR
Time Limit: 10 Sec Memory Limit: 256 MB
Submit: 918 Solved: 420
[Submit][Status][Discuss]
Description

.jpg)
Input
Output
Sample Input
1 2 3 1 2
Sample Output
HINT
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=4e5+;
struct Trie
{
int next[];
} Ti[N*];
int sz,v[N],l[N],r[N],vt[N];
void add(int x)
{
for(int u=,i=,op; i>=; --i)
{
op=((<<i)&x)?:;
if(!Ti[u].next[op])
{
Ti[u].next[op]=++sz;
Ti[sz].next[]=Ti[sz].next[]=;
}
u=Ti[u].next[op];
}
}
int get(int x)
{
int ret=;
for(int u=,i=,op; i>=; --i)
{
op=((<<i)&x)?:;
if(Ti[u].next[op])
{
u=Ti[u].next[op];
ret|=(<<i);
}
else u=Ti[u].next[!op];
}
return ret;
}
int main()
{
int n;
scanf("%d",&n);
for(int i=; i<=n; ++i) scanf("%d",v+i);
for(int i=; i<=n; ++i) vt[i]=v[i]^vt[i-];
vt[]=vt[n+]=;
for(int i=; i<=n; ++i)
{
l[i]=max(l[i-],get(vt[i]));
add(vt[i]);
}
sz=;
Ti[].next[]=Ti[].next[]=;//智障处1
memset(vt,,sizeof(vt));
for(int i=n; i>; --i)
vt[i]=v[i]^vt[i+]; //智障处2
for(int i=n+; i>=; --i)
{
r[i]=max(get(vt[i]),r[i+]); //智障处3
add(vt[i]);
}
int ans=;
for(int i=; i<n; ++i)
ans=max(ans,l[i]+r[i+]);
printf("%d\n",ans);
}
BZOJ4260异或和的更多相关文章
- BZOJ4260,LOJ10051 Nikitosh 和异或
题意 给定一个含 \(N\) 个元素的数组 \(A\),下标从 \(1\) 开始.请找出下面式子的最大值:\((A[l_1]\bigoplus A[l_1+1]\bigoplus -\bigoplus ...
- [BZOJ4260] Codechef REBXOR (01字典树,异或前缀和)
Description Input 输入数据的第一行包含一个整数N,表示数组中的元素个数. 第二行包含N个整数A1,A2,-,AN. Output 输出一行包含给定表达式可能的最大值. Sample ...
- 【BZOJ4260】Codechef REBXOR (Trie树)
[BZOJ4260]Codechef REBXOR (Trie树) 题面 BZOJ 题解 两眼题.第一眼不会做,第二眼好简单... 前缀异或和一下,拿\(Trie\)树维护求一个在这个端点以左的最大值 ...
- [BZOJ4260]Codechef REBXOR(Trie)
Trie模板题.求出每个前缀和后缀的最大异或和区间,枚举断点就可.不知为何跑得飞快. #include<cstdio> #include<cstring> #include&l ...
- BZOJ4260 Codechef REBXOR(trie)
用trie求出前缀最大区间异或和.后缀最大区间异或和即可.注意空间是nlog的. #include<iostream> #include<cstdio> #include< ...
- 【BZOJ4260】Codechef REBXOR Trie树+贪心
[BZOJ4260]Codechef REBXOR Description Input 输入数据的第一行包含一个整数N,表示数组中的元素个数. 第二行包含N个整数A1,A2,…,AN. Output ...
- Android数据加密之异或加密算法
前言: 这几天被公司临时拉到去做Android IM即时通信协议实现,大致看了下他们定的协议,由于之前没有参与,据说因服务器性能限制,只达成非明文传递,具体原因我不太清楚,不过这里用的加密方式是采用异 ...
- Oracle数据库异机升级
环境: A机:RHEL5.5 + Oracle 10.2.0.4 B机:RHEL5.5 需求: A机10.2.0.4数据库,在B机升级到11.2.0.4,应用最新PSU补丁程序. 目录: 一. 确认是 ...
- [LeetCode] Maximum XOR of Two Numbers in an Array 数组中异或值最大的两个数字
Given a non-empty array of numbers, a0, a1, a2, … , an-1, where 0 ≤ ai < 231. Find the maximum re ...
随机推荐
- Spring5参考指南:Environment
文章目录 Profiles PropertySource 使用@PropertySource Spring的Environment接口有两个关键的作用:1. Profile, 2.properties ...
- XEP-0198:流管理
------------恢复内容开始------------ 原文来自:https://xmpp.org/extensions/xep-0198.html,只翻译了技术方面的内容. 摘要:这个规范定义 ...
- vue2.x学习笔记(二十五)
接着前面的内容:https://www.cnblogs.com/yanggb/p/12677019.html. 过滤器 vue允许开发者自定义过滤器,可被用于一些常见的文本格式化.过滤器可以用在两个地 ...
- 《JavaScript和jQuery实战手册(原书第2版)》——2.1节语句
2.1 语句JavaScript语句是基本的编程单元,通常表示JavaScript程序中的单个步骤.可以把一条语句看做一个句子一样,就好像成串的句子一起组成一个段落(或一章,或一本书)一样,把语句组合 ...
- C# richtextbox 自动下拉到最后 方法 & RichTextBox读取txt中文后出现乱码
C# richtextbox 自动滚动到最后 光标到最后 自动显示最后一行 private void richTextBox1_TextChanged(object sender, EventArg ...
- nginx经验分享
如果我们在使用启动nginx时,遇到这样的提示: nginx: [alert] could not open error log file: open() "/usr/local/var/l ...
- 数学--数论--POJ1365——Prime Land
Description Everybody in the Prime Land is using a prime base number system. In this system, each po ...
- C++ 重载运算符 继承 多态 (超详细)
(一)重载运算符: (1)声明与定义格式 一般是类内声明,类外定义,虽然可以在类内定义,但 写前面堆一堆不好看!!! 类内声明: class Demo { 返回值类型 operator 运算符(形参表 ...
- FMT/FWT学习笔记
目录 FMT/FWT学习笔记 FMT 快速莫比乌斯变换 OR卷积 AND卷积 快速沃尔什变换(FWT/XOR卷积) FMT/FWT学习笔记 FMT/FWT是算法竞赛中求or/and/xor卷积的算法, ...
- D. Misha, Grisha and Underground 树链剖分
D. Misha, Grisha and Underground 这个题目算一个树链剖分的裸题,但是这个时间复杂度注意优化. 这个题目可以选择树剖+线段树,时间复杂度有点高,比较这个本身就有n*log ...