题目传送门

过了好久,终于重新开始写博客了。。。

这是一道二进制trie树的模板题。

二进制trie树,理解一下就是一颗二叉树,左右儿子为0或1。

然后每插入一个数就进行一次Find操作。

Find:对于一个数x,我们在trie上总是走x在二进制下第i位的相反的那个节点。(当存在此节点时)

Code:

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std; const int Maxn=1e5+;
int N,x,Ans,tr[Maxn][],Cnt;
void I(int x){
int Node=;
for(int i=;~i;i--){
if(!tr[Node][(x>>i)&])tr[Node][(x>>i)&]=++Cnt;
Node=tr[Node][(x>>i)&];
}
}
int F(int x){
int Node=,Sum=;
for(int i=;~i;i--){
int l=(x>>i)&^,r=(x>>i)&;
if(!tr[Node][l])Node=tr[Node][r],Sum+=r<<i;
else Node=tr[Node][l],Sum+=l<<i;
}
return Sum^x;
}
int main()
{
while(~scanf("%d",&N)){
memset(tr,,sizeof tr),Ans=Cnt=;
for(int i=;i<=N;i++){
scanf("%d",&x);
I(x);Ans=max(Ans,F(x));
}
printf("%d\n",Ans);
}
return ;
}

[二进制trie][贪心]CSUOJ1216异或最大值的更多相关文章

  1. BZOJ 4260: Codechef REBXOR (trie树维护异或最大值)

    题意 分析 将区间异或和转化为前缀异或和.那么[L,R][L,R][L,R]的异或和就等于presum[R] xor presum[L−1]presum[R]\ xor \ presum[L-1]pr ...

  2. hdu 4825 Xor Sum(trie+贪心)

    hdu 4825 Xor Sum(trie+贪心) 刚刚补了前天的CF的D题再做这题感觉轻松了许多.简直一个模子啊...跑树上异或x最大值.贪心地让某位的值与x对应位的值不同即可. #include ...

  3. CSU 1216 异或最大值

    求n个数里面,求两两异或的最大值 直接来肯定会超时 既然要异或最大值,那么两个数的二进制肯定是正好错开为好...为了能快速找到错开的数,确实有点难想到,用字典树,按二进制数插入,再一个一个在字典树里面 ...

  4. 中南oj 1216: 异或最大值 数据结构

    1216: 异或最大值 Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 98  Solved: 29 [Submit][Status][Web Boar ...

  5. 2013级新生程序设计基础竞赛-正式赛 F 异或最大值 解题报告

    F - 异或最大值 Time Limit: 2000/1000MS (Java/Others)      Memory Limit: 128000/64000KB (Java/Others) Subm ...

  6. Poj The xor-longest Path 经典题 Trie求n个数中任意两个异或最大值

    Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 5646   Accepted: 1226 Description In an ...

  7. 【CH1602】最大异或和 trie+贪心

    题目大意:给定 N 个数,求这 N 个数中任选两个数进行异或运算,求最大的异或和是多少. 一个 int 类型的整数,可以看作一个长度为32位的字符串,异或运算不像加法,最大值不一定是由两个较大值得到. ...

  8. ACM学习历程—CSU 1216 异或最大值(xor && 贪心 && 字典树)

    题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1216 题目大意是给了n个数,然后取出两个数,使得xor值最大. 首先暴力枚举是C(n,  ...

  9. CSU 1216异或最大值 (0-1 trie树)

    Description 给定一些数,求这些数中两个数的异或值最大的那个值 Input 多组数据.第一行为数字个数n,1 <= n <= 10 ^ 5.接下来n行每行一个32位有符号非负整数 ...

随机推荐

  1. 关于nicescroll滚动条现在浏览器上滚动问题

    nativeparentscrolling: false //检测内容底部,并让父节点来滚动,作为原生滚动 有时候 当自定义滚动条在底部 滚动无效 可以把这个参数设置一下

  2. 转: SSH框架总结(框架分析+环境搭建+实例源码下载)

    原:http://blog.csdn.net/shan9liang/article/details/8803989 首先,SSH不是一个框架,而是多个框架(struts+spring+hibernat ...

  3. win7 下安装oracle 10 g

    首先下对版本,Oracle 10g支持Win7版: http://download.oracle.com/otn/nt/oracle10g/10203/10203_vista_w2k8_x86_pro ...

  4. [翻译] UIGlossyButton

    UIGlossyButton https://github.com/waterlou/UIGlossyButton Feature create standard iPhone buttons wit ...

  5. web开发方面会遇到哪些缓存?分别如何优化

    Web缓存定义: Web缓存游走于服务器和客户端之间,这个服务器可能是源服务器(资源所驻留的服务器Add),数量可能是1个或多个. Web缓存就在服务器-客户端之间搞监控,监控请求,并且把请求输出的内 ...

  6. asp.net mvc文件下载

    一.zip打包下载 1.依赖引用:ICSharpCode.SharpZipLib 2.设定网站有单独文件服务器,网站目录下有虚拟路径FileFolder,通过虚拟路径将文件映射到文件服务器. 设定根据 ...

  7. firewalld防火墙简单理解总结(一)

    参考文章:https://linux.cn/article-8098-1.html https://linux.cn/article-9073-1.html   #多区域使用示例,重点参考 前言 防火 ...

  8. centos6 安装glibc-2.14.1

    CentOS默认的glibc版本为2.12.1, 网上都是给出的升级至glibc-2.14.1的方法, 都是用glibc-2.14.1.tar.gz [root@192-168-0-151 ~]# s ...

  9. mac lnmp

    Mac下安装LNMP(Nginx+PHP5.6)环境 Mac下安装LNMP(Nginx+PHP5.6)环境 安装Homebrew 最近工作环境切换到Mac,所以以OS X Yosemite(10.10 ...

  10. 【cs231n】图像分类 k-Nearest Neighbor Classifier(K最近邻分类器)【python3实现】

    [学习自CS231n课程] 转载请注明出处:http://www.cnblogs.com/GraceSkyer/p/8763616.html k-Nearest Neighbor(KNN)分类器 与其 ...