【Trie】最大异或对

技术【Trie】最大异或对 【Trie】最大异或对【题目描述】
在给定的N个整数A1,A2……AN中选出两个进行xor(异或)运算,得到的结果最大是多少
输入格式
第一行输入一个整数N。
第二行输入N个

最大异或对。

题目描述

从给定的n个整数A1、a2中选择两个.对于异或运算,最大结果是什么?

输入格式

在第一行输入一个整数n。

在第二行输入n个整数a1 ~ an。

输出格式

输出一个整数来表示答案。

数据范围

1N105,

0Ai231

输入样例:

1 2 3

输出样例:

(1)使用Trie优化,所有数字从高位到低位存储在Trie树中。因为要计算最大异或对,所以对于一个数num,可以获得最大异或值的数在每一位都必须与num相反。

然后取num的每个数字和Trie树中的数字进行查询。如果可以找到对位数,继续查询,如果找不到,继续查询。

最大的数是二进制的32位,所以所有的数都会统一视为32位,避免了判断的麻烦,走到叶节点后才能视为一个数。

1 #包含iostream

2使用命名空间标准;

3 const int N=31 * 100009

4 int Trie[N][2],idx

5个空心嵌件(整数)

6 {

7 int p=0;

8表示(int i=30I=0;我)

9 {

10 int u=(num I)1;

11 if(!特里[p][u])

12 Trie[p][u]=idx;

13 p=Trie[p][u];

14 }

15 }

16

17整数查询(整数)

18 {

19 int p=0,RES=0;

20表示(int i=30I=0;我)

21 {

22 int u=num I 1;

23 if(Trie[p][!u])

24 {

25 res=(res 1)!u;//注意:加号运算符优先于。

26 p=Trie[p][!u];

27 }

其他28个

29 {

30 RES=(RES 1)u;

31 p=Trie[p][u];

32 }

33 }

34返回^水库;

35 }

36

37 int n,res

38 int main()

39 {

cin北纬40度;

41 while(n -)

42 {

43整数;

44 cin数字;

45插入(数量);

46 res=max(res,query(num));

47 }

48个国家;

49返回0;

50 }

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/37476.html

(0)

相关推荐

  • Java类访问权限

    技术Java类访问权限 Java类访问权限目录1 类访问权限1.1 四种访问权限解析1.2 Protected分析1.3 private失效情况1.3.1 Java内部类
    1 类访问权限
    1.1 四种访

    礼包 2021年11月7日
  • PHP中错误和异常的区别有哪些

    技术PHP中错误和异常的区别有哪些这篇文章将为大家详细讲解有关PHP中错误和异常的区别有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。PHP中错误和异常的区别通过前面两篇文章的学习

    攻略 2021年11月19日
  • C/C++ Qt数据库SqlRelationalTable关联表怎么使用

    技术C/C++ Qt数据库SqlRelationalTable关联表怎么使用本篇内容介绍了“C/C++ Qt数据库SqlRelationalTable关联表怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样

    攻略 2021年12月10日
  • 怎么解决php验证码不变的问题

    技术怎么解决php验证码不变的问题这篇文章主要介绍“怎么解决php验证码不变的问题”,在日常操作中,相信很多人在怎么解决php验证码不变的问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”

    攻略 2021年10月25日
  • 如何理解算法的复杂度

    技术如何理解算法的复杂度本篇内容主要讲解“如何理解算法的复杂度”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解算法的复杂度”吧!1. Motivation - 为什么需

    攻略 2021年10月26日
  • 如何理解epoll原理

    技术如何理解epoll原理这篇文章将为大家详细讲解有关如何理解epoll原理,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。epoll的系统调用很简单,只有三个,其定义如下

    攻略 2021年11月19日