【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)

相关推荐

  • 伤害英语,几个关于伤害的英语词汇的区别

    技术伤害英语,几个关于伤害的英语词汇的区别damage: 指部分性的损坏,意味着损坏后价值降低,有损于功能、吸引力及效率降低伤害英语。 destroy 指完全彻底的破坏,常有不能或很难修复的意思。
    harm: 较为通俗

    生活 2021年10月24日
  • 我为妈妈做件事作文,帮妈妈擦地作文50个字

    技术我为妈妈做件事作文,帮妈妈擦地作文50个字范文我为妈妈做件事作文:5月9日是母亲节,老师布置了“帮妈妈做一件事”的作业。我不知道该帮妈妈做什么事,就去问爸爸,爸爸说:“可以帮妈妈洗洗碗,或者帮妈妈捶捶背。”我又去问妈

    生活 2021年10月23日
  • 怎么使用Web3.js API 在页面中进行转账

    技术怎么使用Web3.js API 在页面中进行转账这期内容当中小编将会给大家带来有关怎么使用Web3.js API 在页面中进行转账,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。如何

    攻略 2021年11月2日
  • 如何使用User Agent和代理IP隐藏身份

    技术如何使用User Agent和代理IP隐藏身份这篇文章给大家介绍如何使用User Agent和代理IP隐藏身份,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、为何要设置User Agent

    攻略 2021年10月28日
  • 如何进行mysqlhotcopy 热备工具体验与总结

    技术如何进行mysqlhotcopy 热备工具体验与总结本篇文章给大家分享的是有关如何进行mysqlhotcopy 热备工具体验与总结,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说

    攻略 2021年12月4日
  • 毛线鞋,3岁小孩毛线棉鞋怎么织

    技术毛线鞋,3岁小孩毛线棉鞋怎么织你好毛线鞋:很高兴回答“3岁小孩毛线棉鞋怎么织”这个问题。1.准备工具/原料:棒针、毛线。2、方法/步骤:起针30针,双色线交替编织20行.织21行的时候,鞋口留5针不织,从织22行开始

    生活 2021年10月31日