The XOR Largest Pair (trie树)
题目描述
在给定的 NN 个整数 A_1,A_2,……,A_NA1,A2,……,AN 中选出两个进行xor运算,得到的结果最大是多少?
xor表示二进制的异或(^)运算符号。
输入格式
第一行输入一个整数 NN;
第二行输入 N 个整数 A_1~A_NA1~AN。
输出格式
输出一个整数表示答案。
1 #include <bits/stdc++.h>
2 //#define loveGsy
3 using namespace std;
4 const int N = 1e5 + 10;
5 int trie[N * 31][2]; //每个数用31位二进制构造Trie树,每个节点为0或1
6 int a[N], n, ans, tot = 1;
7
8 void insert(int x) {//构建trie树
9 int p = 0;
10 for (int k = 30; k >= 0; k--) {//高位向低位枚举
11 int t = x >> k & 1;//计算x的第k位是1还是0 0~30
12 if (!trie[p][t]) trie[p][t] = ++tot;
13 p = trie[p][t];
14 }
15 }
16
17 int search(int x) {
18 int p = 0, tmp = 0;
19 for (int k = 30; k >= 0; k--) {
20 int t = x >> k & 1;//取出x第k位
21 if (trie[p][t ^ 1]) {
22 p = trie[p][t ^ 1];//贪心思想,走相反位
23 tmp = tmp + (1 << k);
24 }
25 else p = trie[p][t];
26 }
27 return tmp;
28 }
29
30 int main() {
31 #ifdef loveGsy
32 freopen("xor.in", "r", stdin);
33 freopen("xor.out", "w", stdout);
34 #endif
35 cin >> n;
36 for (int i = 1; i <= n; i++) {
37 scanf("%d", &a[i]);
38 insert(a[i]);
39 ans = max(ans, search(a[i]));
40 }
41 cout << ans << endl;
42 return 0;
43 }
The XOR Largest Pair (trie树)的更多相关文章
- The XOR Largest Pair(tire树)
题目 The XOR Largest Pair 解析 一年前听学长讲这道题,什么01trie,好高级啊,所以没学,现在一看.... 看到xor就应该想到二进制,一看数据\(A_i< 2^{31} ...
- The XOR Largest Pair [Trie]
描述 在给定的N个整数A1,A2--AN中选出两个进行xor运算,得到的结果最大是多少? 输入格式 第一行一个整数N,第二行N个整数A1-AN. 输出格式 一个整数表示答案. 样例输入 3 1 2 3 ...
- CH 1602 - The XOR Largest Pair - [字典树变形]
题目链接:传送门 描述在给定的 $N$ 个整数 $A_1, A_2,\cdots,A_N$ 中选出两个进行xor运算,得到的结果最大是多少? 输入格式第一行一个整数 $N$,第二行 $N$ 个整数 $ ...
- CH1602 The XOR Largest Pair【Trie树】
1602 The XOR Largest Pair 0x10「基本数据结构」例题 描述 在给定的N个整数A1,A2……AN中选出两个进行xor运算,得到的结果最大是多少? 输入格式 第一行一个整数N, ...
- 「LOJ#10050」「一本通 2.3 例 2」The XOR Largest Pair (Trie
题目描述 在给定的 $N$ 个整数 $A_1,A_2,A_3...A_n$ 中选出两个进行异或运算,得到的结果最大是多少? 输入格式 第一行一个整数$N$. 第二行$N$个整数$A_i$. 输出格式 ...
- The XOR Largest Pair
刷刷书上的例题 在给定的N个整数A1,A2……An中选出两个进行XOR运算,得到的结果最大是多少?N<=105,0<=Ai<231 SOlution: 我们思考到对于两个数相异或,是 ...
- HDU 4825 Xor Sum (trie树处理异或)
Xor Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 132768/132768 K (Java/Others)Total S ...
- LOJ10050 The XOR Largest Pair
题意 在给定的 \(N\) 个整数 \(A_1,A_2,-,A_N\) 中选出两个进行异或运算,得到的结果最大是多少? 对于 \(100\%\) 的数据,\(1\le N\le 10^5, 0\le ...
- HDU4825 Xor Sum(贪心+Trie树)
Problem Description Zeus 和 Prometheus 做了一个游戏,Prometheus 给 Zeus 一个集合,集合中包含了N个正整数,随后 Prometheus 将向 Zeu ...
随机推荐
- 【高并发】通过源码深度分析线程池中Worker线程的执行流程
大家好,我是冰河~~ 在<高并发之--通过ThreadPoolExecutor类的源码深度解析线程池执行任务的核心流程>一文中我们深度分析了线程池执行任务的核心流程,在ThreadPool ...
- cordova 发送ajax请求的相关配置
<access origin="*" /> <preference name="scheme" value="http" ...
- CF Edu Round 131 简要题解 (ABCD)
A 分类讨论即可 . using namespace std; typedef long long ll; typedef pair<int, int> pii; int main() { ...
- python:GUI图形化数据库巡检工具
问题描述:时间过得真快,一眨眼又一个月过去,2022又过去大半,7月的尾巴,终于稍微做出来点 东西,本人也不是开发,也是在不断学习的一枚小白.这次使用tkinter制作了一个mysql的巡检工具,使用 ...
- Python 懂车帝口碑分爬虫
本文所有教程及源码.软件仅为技术研究.不涉及计算机信息系统功能的删除.修改.增加.干扰,更不会影响计算机信息系统的正常运行.不得将代码用于非法用途,如侵立删! Python 懂车帝口碑分爬虫 需求 懂 ...
- 高效能团队的Java研发规范(进阶版)
目前大部分团队是使用的阿里巴巴Java开发规范,不过在日常开发中难免遇到覆盖不到的场景,本文在阿里巴巴Java开发规范基础上,补充一些常用的规范,用于提升代码质量及增强代码可读性. 编程规约 1.基础 ...
- linux scsi相关的一些学习笔记
最近看scsi相关处理的一些备忘,比较零碎,仅作参考. 先从最显而易见的打印入手: [0:0:0:0] disk ATA INTEL SSDSC2BX20 0150 - [0:0:1:0] dis ...
- 【ARK UI】HarmonyOS 从相册选择图片并显示到Image组件上
参考资料 [Harmony OS][ARK UI]ETS 上下文基本操作 [Harmony OS][ARK UI]ets使用startAbility或startAbilityForResult方式 ...
- 使用Python批量爬取美女图片
运行截图 实列代码: from bs4 import BeautifulSoup import requests,re,os headers = { 'User-Agent': 'Mozilla/5. ...
- Vmware虚拟主机访问外网设置
本手册使用10.4.7.0/24网段 重点在于虚拟主机的网关和宿主机上的Vmnet8的IP和虚拟网络编辑器的NET网关保持一致 1.设置宿主机网络适配器 选择允许Vmware网络共享 配置VMnet8 ...