首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
The XOR Largest Pair(Tire字典树应用)
】的更多相关文章
题解0014:信奥一本通1472——The XOR Largest Pair(字典树)
题目链接:http://ybt.ssoier.cn:8088/problem_show.php?pid=1472 题目描述:在给定的 N 个整数中选出两个进行异或运算,求得到的结果最大是多少. 看到这道题要搞异或,首先想到把它们转成二进制. 那用什么存呢? 这就要用到一个比较NB的算法--字典树了. (对字典树不太了解的可以先看我另一篇博客--https://www.cnblogs.com/wdrdsahudhisjabshdahuhsh/p/16323517.html) 这就是把一堆整数转成2…
The XOR Largest Pair(字典树)
题目描述 在给定的 N 个整数 A1,A2,-,AN 中选出两个进行异或运算,得到的结果最大是多少? 输入格式 第一行一个整数 N. 第二行 N 个整数 Ai. 输出格式 一个整数表示答案. 样例 输入 5 2 9 5 7 0 输出 14 1 #include <iostream> 2 using namespace std; 3 int n; 4 const int N = 1e5 + 5; 5 int a[N]; 6 int son[N * 35][3], cnt[N * 35];…
The XOR Largest Pair(tire树)
题目 The XOR Largest Pair 解析 一年前听学长讲这道题,什么01trie,好高级啊,所以没学,现在一看.... 看到xor就应该想到二进制,一看数据\(A_i< 2^{31}\),考虑把所有的数都处理成长度为32的二进制数,插入字典树中,查询的时候就逐位比较,有不同的先走不同的那边,这样保证了每次插入一个数时查询的结果是最大的,然后不断更新最大值就可以了 我这种不用位运算的懒人就直接用bitset维护了 从高位到地位插入可能好算一些 代码 #include <bits/st…
CH1602 The XOR Largest Pair【Trie树】
1602 The XOR Largest Pair 0x10「基本数据结构」例题 描述 在给定的N个整数A1,A2……AN中选出两个进行xor运算,得到的结果最大是多少? 输入格式 第一行一个整数N,第二行N个整数A1-AN. 输出格式 一个整数表示答案. 样例输入 3 1 2 3 样例输出 3 数据范围与约定 对于100%的数据: N<=10^5, 0<=Ai<2^31. 思路: 把一个整数看作长度是32的二进制01串. 要找到异或最大的一对,就是要沿着与当前位相反的字符指针往下访问.…
The XOR Largest Pair (trie树)
题目描述 在给定的 NN 个整数 A_1,A_2,--,A_NA1,A2,--,AN 中选出两个进行xor运算,得到的结果最大是多少?xor表示二进制的异或(^)运算符号. 输入格式 第一行输入一个整数 NN:第二行输入 N 个整数 A_1-A_NA1-AN. 输出格式 输出一个整数表示答案. 赶紧复习一波,有一年没碰trie树了...... 就是找两个数,他们异或值最大,建立01trie树,从高位向低位建立,即叶子结点是最低位.查询时尽量走相反的路,保证异或值最大. 1 #inc…
「LOJ#10050」「一本通 2.3 例 2」The XOR Largest Pair (Trie
题目描述 在给定的 $N$ 个整数 $A_1,A_2,A_3...A_n$ 中选出两个进行异或运算,得到的结果最大是多少? 输入格式 第一行一个整数$N$. 第二行$N$个整数$A_i$. 输出格式 一个整数表示答案. 样例 样例输入 5 2 9 5 7 0 样例输出 14 数据范围与提示 对于$100%$的数据,$1≤N≤10^5$,$0≤Ai<2^{31}$. 题解 这位朋友,你看这道题这样简洁,必然是很能拓展的题啊. 首先把每个数拆分二进制,从最高位(31位)开始,往0位走,算作一个字符串…
The XOR Largest Pair(Tire字典树应用)
题目链接:传送门 思路:建立一个32位的字典树,对每一个要插入的数字查找它异或的最大值(就是尽量全部二进制的值都相反), 然后获得两个数异或的最大值. #include<iostream> #include<cstdio> #include<cstring> using namespace std; ; ][],tot; void Insert(int x) { ,c; ;i>=;i--) { c=(x>>i)&; if(!ch[u][c])…
CH 1602 - The XOR Largest Pair - [字典树变形]
题目链接:传送门 描述在给定的 $N$ 个整数 $A_1, A_2,\cdots,A_N$ 中选出两个进行xor运算,得到的结果最大是多少? 输入格式第一行一个整数 $N$,第二行 $N$ 个整数 $A_1, A_2,\cdots,A_N$. 输出格式一个整数表示答案. 样例输入31 2 3 样例输出3 数据范围与约定对于100%的数据:$N \le 10^5, 0 \le A_i < 2^{31}$. 题解: 由于 $0 \le A_i < 2^{31}$,即二进制下最小是 $31$ 个 $…
019(The XOR Largest Pair)(字典树)
题目:http://ybt.ssoier.cn:8088/problem_show.php?pid=1472 题目思路:异或是啥呀? 异或就是把两个数字变成位数相同的二进制在同位比较,相同为0,不同为1,如: 011 100 -- 111 所以 3 XOR 4 == 7 那让我们找异或不就是说把一大堆二进制的字符串存起来找嘛 那基本思路就出来了,将数字转变成由 0 和 1组成的字符串,然后找不同 字符串?找不同?那不就是把字典树糊人脸上了嘛 所以这个程序的非主体部分就白给了: 一个是主程序,输入…
字典树-THE XOR largest pair
题目:给你n个数字A1,A2....An ,问从中选出两个数字异或运算得到的最大结果是多少 0<=Ai<231 用字典树,记录每个数字的31位2进制01串(int 为4个字节,每个字节8个二进制,int一共32位,最高位为符号位,所以不考虑) #include<bits/stdc++.h> using namespace std; ; ]; int a[maxn]; ; int main() { int n; cin>>n; ; j<=n; j++) // 把n个…