正题

题目链接:https://loj.ac/problem/10050


题目大意

有n个数,求两个数使他们异或起来最大。


解题思路

我们考虑构建一个TrieTrieTrie。
两个分叉为0,1,对于每个数二进制下不够30位我们将其补够30位,然后再根据二进制01构建TrieTrieTrie。
然后我们再次枚举一边,然后依旧是补位转二进制,然后每次尽量走反方向的边,在路上统计一下,取最小值就是答案。


code

#include<cstdio>
#include<algorithm>
#define N 100010
using namespace std;
int n,l[N*40][2],x,tot,a[N];
int maxs;
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&a[i]);int now=0;for(int j=30;j>=0;j--)//构建{x=(a[i]>>j)&1;if(!l[now][x]) l[now][x]=++tot;now=l[now][x];}}for(int i=1;i<=n;i++){int now=0;int ans=0;for(int j=30;j>=0;j--)//查询{x=((a[i]>>j)&1)^1;//反位if(!l[now][x]) now=l[now][x^1];else{ans+=1<<j;now=l[now][x];}}maxs=max(maxs,ans);}printf("%d",maxs);
}

loj#10050-The XOR Largest Pair【Trie(字典树)】相关推荐

  1. 【LOJ10050】The XOR Largest Pair(字典树)

    problem 给定n个整数,在其中任意选出两个进行xor运算,得到的结果最大值是多少? n<1e5,ai在int范围内 solution 朴素枚举,O(n^2), TLE 考虑异或运算,相同为 ...

  2. The XOR Largest Pair(算法竞赛进阶指南 P72,Trie)

    一.题目链接: The XOR Largest Pair 二.题目大意: 有 n 个数,求任意两个数异或得到的最大值. 三.分析: 刚学习了字典树,觉得还不错. 把每个数分解为二进制存到字典树中,查询 ...

  3. 数据结构总结1(火车进栈/兔子与兔子/括号画家/Editor/邻值查找/最大子序和/前缀统计/Phone List/The XOR Largest Pair)

    问题 A: 火车进栈 题目描述 这里有n列火车将要进站再出站-- 但是,每列火车只有1节-那就是车头-- 描述 有n列火车按1到n的顺序从东方左转进站,这个车站是南北方向的,它虽然无限长,只可惜是一个 ...

  4. 提高篇 第二部分 字符串算法 第3章 Trie字典树

    Trie(字典树)解析及其在编程竞赛中的典型应用举例 - Reqaw - 博客园 『一本通』Trie字典树 - YeLingqi - 博客园 字典树(Trie Tree) - 仰望高端玩家的小清新 - ...

  5. POJ3764-The xor-longest Path【Trie(字典树)】

    正题 POJ题目链接:http://poj.org/problem?id=3764 其实loj也有题目:https://loj.ac/problem/10056 题目大意 一棵树,求两个点使他们的之间 ...

  6. Trie(字典)树详解

    什么是Trie(字典)树 顾名思义,这棵树和字典类似,通过百度我们又能知道Trie树是一种树形结构,是一种哈希树的变种.典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引 ...

  7. C语言实现Trie字典树 (附完整源码)

    实现Trie字典树 TrieNode结构体 实现实现Trie字典树的完整源码(定义,实现,main函数测试) TrieNode结构体 typedef struct TrieNode {struct T ...

  8. dfa算法c语言,DFA跟trie字典树实现敏感词过滤(python和c语言)

    DFA和trie字典树实现敏感词过滤(python和c语言) 现在做的项目都是用python开发,需要用做关键词检查,过滤关键词,之前用c语言做过这样的事情,用字典树,蛮高效的,内存小,检查快. 到了 ...

  9. 数据结构与算法(十一)Trie字典树

    本文主要包括以下内容: Trie字典树的基本概念 Trie字典树的基本操作 插入 查找 前缀查询 删除 基于链表的Trie字典树 基于Trie的Set性能对比 LeetCode相关线段树的问题 Lee ...

  10. LeetCode 208 实现 Trie (字典树)

    208 实现 Trie (字典树) 题目: 实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作. 示例: Trie trie = new Tri ...

最新文章

  1. unbutu 按照docker
  2. 你想要的iOS 小技巧总结
  3. 服务网格架构激活了容器网络管理—来自于服务网格创建者们的见解与展望
  4. 金蝶生成凭证模板_金蝶精斗云云会计软件值得的地方有哪些?
  5. php7设置最大连接数,sybase 15.7 修改 number of user connections 最大连接数
  6. Qt for Android 部署流程分析
  7. 对已经关闭的的chan进行读写,会怎么样?为什么?
  8. datatables ajax错误,ajax datatable - DataTables警告:table id = example - 无法重新初始化DataTable(示例代码)...
  9. 中缀表达式变后缀分析
  10. Xcode7下模拟器输入文本无法显示系统键盘的解决办法
  11. 使用fastjson读取超巨json文件引起的GC问题
  12. mc服务器怪物掉落修改,【服务端插件】 clear 2.3-清理插件,红石,流水岩浆,动物怪物掉落物,作物自动清理[1.6.2-1.7.2]...
  13. 51单片机呼吸灯c语言程序,用51单片机的呼吸灯程序
  14. 用C语言实现求水仙花数
  15. 与i7性能相当的服务器cpu,i7 8550 U相当于七代什么水平?i7 8550 U性能评测分析
  16. Mac 修改命令行前缀显示
  17. 理解boot menu
  18. 【观察】亚信科技:中期业绩逆势上扬,让5G新价值挺进纵深
  19. PPT打印省纸法及改变ppt背景
  20. 纯净版win10系统下载 2020-12-17

热门文章

  1. python搭建项目结构_Django搭建项目实战与避坑细节详解
  2. python base64编码_JS和Python实现AES算法
  3. python 里什么时候缩进_python什么时候缩进
  4. mysql导入数据提前修改字段_Mysql一些导入导出数据库,添加修改字段命令_MySQL...
  5. .net mysql字符串截取_【MySQL】字符串截取之SUBSTRING_INDEX和【MySQL】字符串四则运算...
  6. android虚线边框_Android实现代码画虚线边框背景效果
  7. leetcode111. 二叉树的最小深度(层序遍历10)
  8. 151. 翻转字符串里的单词(思路+详解)
  9. mysql id 字段类型转换_mysql 数据类型转换
  10. [Spring5]IOC容器_底层原理