AcWing 143. 最大异或对
2021-03-03 06:25
标签:trie树 lan 范围 str ret ++i for win amp 在给定的N个整数A1,A2……AN中选出两个进行xor(异或)运算,得到的结果最大是多少? 第一行输入一个整数N。 第二行输入N个整数A1~AN。 输出一个整数表示答案。 1≤N≤10^5, 3 3 先想一下暴力的做法,然后优化 显然上述的暴力方式时间复杂度为O(n ^ 2),明显会超时,这样就要想着如何优化,这里我们可以优化内层循环:采用trie树来优化 AcWing 143. 最大异或对 标签:trie树 lan 范围 str ret ++i for win amp 原文地址:https://www.cnblogs.com/Lngstart/p/12996879.htmlAcWing 143.最大异或对
题目描述
输入格式
输出格式
数据范围
0≤Ai
输入样例:
1 2 3输出样例:
思路
int arr[N];
int ans = 0;
for(int i = 0; i
我们每次把每一个数的二进制的没一个位存储到trie树中,这样每一个叶子节点就是代表了一个数
每输入一个x,先插入树中,我们从最高位开始与树中的数据匹配,如果存在与x在同一位置二进制位相反的数那么就选择树中的这样的点(就相当于把已经插入的数分成了两个集合...),如果不存在就选自己。如下所示代码实现
#include