每一个数能做出的贡献就是其两端第二个比他大的中间的数和他的异或值

按权值大小排序,按照位置扔进set,set内的元素都是比他大的,也是全的

然后Tire上跑就行了。。

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<iostream>
#include<set>
#define N 50050
using namespace std;
int sz,ch[33*N][2],sum[33*N],n,root[N],tim;
set<int > s;
struct data{int val,id;}a[N];
bool cmp(data a,data b){return a.val>b.val;}
void insert(int p,int &rt,int x){
rt=++sz; int now=rt;
sum[rt]=sum[p]+1;
for(int i=30;~i;i--){
int t=(x>>i)&1;
ch[now][0]=ch[p][0];
ch[now][1]=ch[p][1];
ch[now][t]=++sz;
now=ch[now][t]; p=ch[p][t];
sum[now]=sum[p]+1;
}
}
int query(int x,int l,int r){
int ans=0;
for(int i=30;~i;i--){
int t=(x>>i)&1;
if(sum[ch[r][t^1]]-sum[ch[l][t^1]])
l=ch[l][t^1],r=ch[r][t^1],ans+=(1<<i);
else l=ch[l][t],r=ch[r][t];
}
return ans;
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&a[i].val);
a[i].id=i;
}
for(int i=1;i<=n;i++){
tim=1;
insert(root[i-1],root[i],a[i].val);
}
sort(a+1,a+n+1,cmp);
s.insert(-1); s.insert(-2); s.insert(-3);
s.insert(100000); s.insert(100001); s.insert(100002);
s.insert(a[1].id);
int ans=0;
for(int i=2;i<=n;i++){
set<int>:: iterator h,t;
h=s.lower_bound(a[i].id); t=h;
t++; int r=*t-1;
h--; h--; int l=*h+1;
l=max(1,l); r=min(r,n);
if(l!=r) ans=max(ans,query(a[i].val,root[l-1],root[r]));
s.insert(a[i].id);
}
printf("%d\n",ans);
return 0;
}

bzoj 3166 可持久化Tire的更多相关文章

  1. BZOJ - 3166 可持久化Trie 维护次大区间

    题意:给出\(a[1...n]\),找出一个连续区间\(a[l...r],r>l\),令该区间的次大值为\(a_k\),使得\(a_k⊕a_i,l≤i≤r\)最大,输出全局最优解 (这题意有点别 ...

  2. 51Nod--1295 XOR key (可持久化tire树)

    题目链接 1295 XOR key 可持久化tire树模版题 数组一定要开够 不然数组不够的话就容易tle 吃了两次亏 #include<bits/stdc++.h> using name ...

  3. BZOJ 3674 可持久化并查集加强版(路径压缩版本)

    /* bzoj 3674: 可持久化并查集加强版 http://www.lydsy.com/JudgeOnline/problem.php?id=3674 用可持久化线段树维护可持久化数组从而实现可持 ...

  4. BZOJ 3674 可持久化并查集加强版(按秩合并版本)

    /* bzoj 3674: 可持久化并查集加强版 http://www.lydsy.com/JudgeOnline/problem.php?id=3674 用可持久化线段树维护可持久化数组从而实现可持 ...

  5. bzoj 3166 [Heoi2013]Alo 可持久化Trie

    3166: [Heoi2013]Alo Time Limit: 20 Sec  Memory Limit: 256 MBSubmit: 1227  Solved: 569[Submit][Status ...

  6. BZOJ 3166 HEOI2013 ALO 可持久化trie+st表

    题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=3166(洛谷上也有) 题意概述: 给出一个序列,对于一个区间,其权值为区间中的次大值亦或区 ...

  7. BZOJ 3166 set+可持久化trie树(OR 莫队)

    思路: 1.找次大值 我们不妨设当前点是次大的 那这段区间为 左边第二个比它大的点的坐标+1 和右边第二个比它大的点的坐标-1 2.用可持久化trie树找异或最大值 也可以用莫队 //By Siriu ...

  8. BZOJ 3166 [HEOI2013]Alo (可持久化01Trie+链表)

    题目大意:给你一个长度为$n$的序列,让你找出一段子序列,求其中的 次大值 异或 序列里一个数 能得到的最大值 先对序列建出可持久化$Trie$ 按元素的值从小到大遍历,设当前元素的位置是i,找出它左 ...

  9. BZOJ 3166: [Heoi2013]Alo 链表+可持久化trie

    链表这个东西非常好用啊 ~ code: #include <bits/stdc++.h> #define N 50010 #define inf 2000400000 #define se ...

随机推荐

  1. webpack安装使用

    一.安装 1.安装node.js,Webpack 需要 Node.js v0.6 以上支持 2.使用npm(软件包管理 )安装webpack (1)全局安装    npm install webpac ...

  2. 【程序员札记#学习&&塑形# 】2018年5月04号

      回顾   工作:pendding 学习:看算法导论第一章,leetcode还在做(本身翻译错误,被误导了). 体会: 1) 浩俊之前推荐让我看的<算法导论>,昨天再回过头看,里面很多确 ...

  3. P1352 没有上司的舞会

    题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数Ri, ...

  4. 说说Android的MVP模式

    http://toughcoder.NET/blog/2015/11/29/understanding-Android-mvp-pattern/ 安卓应用开发是一个看似容易,实则很难的一门苦活儿.上手 ...

  5. SOFA 源码分析 — 自定义线程池原理

    前言 在 SOFA-RPC 的官方介绍里,介绍了自定义线程池,可以为指定服务设置一个独立的业务线程池,和 SOFARPC 自身的业务线程池是隔离的.多个服务可以共用一个独立的线程池. API使用方式如 ...

  6. require.js配置路径的用法和css的引入

    前端开发在近一两年发展的非常快,JavaScript作为主流的开发语言得到了前所未有的热捧.大量的前端框架出现了,这些框架都在尝试着解决一 些前端开发中的共性问题,但是实现又不尽相同.通常一般的前端加 ...

  7. 【原创】整合Spring4+Hibernate4+Struts2时NullPointerException问题解决

    1.开场白 相信SSH初学者肯定遇到过这个问题,但是又是百思不得其解,明白了之后就恍然大悟. 2.问题描述 程序实现过程是UserAction中调用UserService,UserService的实现 ...

  8. jquery和ajax的关系详细介绍【转】

    jquery和ajax的关系详细介绍 http://www.jb51.net/article/43965.htm

  9. Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class android.sup

    解决:找不到资源文件: 系统会根据分辨率来选择加载不同drawable下文件夹的资源,如果只在一个文件下放了资源文件,不同的分辨率设备的会报错.

  10. 一文读懂 Spring Boot、微服务架构和大数据治理三者之间的故事

    微服务架构 微服务的诞生并非偶然,它是在互联网高速发展,技术日新月异的变化以及传统架构无法适应快速变化等多重因素的推动下诞生的产物.互联网时代的产品通常有两类特点:需求变化快和用户群体庞大,在这种情况 ...