143. 最大异或对

模板:tire 复杂度:O(nlogn)
143. 最大异或对

#include <iostream>
#include <algorithm>
using namespace std;
const int maxn = 100010, M = 31 * maxn;
int ch[maxn];
int n;
int son[M][2], idx = 0;
void insert(int x)
{int p = 0;for (int i = 30; ~i; i--){int u = x >> i & 1;if (!son[p][u])son[p][u] = ++idx;//如果没有就创建p = son[p][u];}
}
int search(int x)
{int p = 0;int ret = 0;for (int i=30;~i;i--){int u = x>>i&1;//二进制上某位是0还是1	if (!son[p][!u])//如果他的儿子没有不一样的{p = son[p][u];ret = ret*2+u;}else//有不一样的{p = son[p][!u];ret = ret*2+!u;}}ret = ret^x;return ret;
}
int main()
{int n;cin >> n;for (int i = 0; i < n; i++){cin >> ch[i];insert(ch[i]);}int res = 0;for (int i = 0; i < n; i++){res = max(res, search(ch[i]));}cout << res;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/428816.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows service 2008 内存吃尽解决方案

最近用windows2008&#xff0c;发现系统运行一段时间后&#xff0c;内存吃紧&#xff0c;赶紧打开资源查看器&#xff0c;发现当前运行的程序占有内存都很小&#xff0c;后经查资料&#xff0c;原来是被windows2008的文件缓存吃尽了&#xff0c;这是windows2008的新机制&#x…

文档上传到服务器上,将文件上传到服务器上

将文件上传到服务器上 内容精选换一换为了实现NAT Server、SAP HANA主备节点和SAP S/4HANA主备节点互相通过SSH协议跳转的功能&#xff0c;需要配置云服务器之间的互信。在本地PC上&#xff0c;生成登录NAT Server的密钥文件。在创建NAT Server时&#xff0c;指定了NAT Server的…

深入理解C# 静态类与非静态类、静态成员的区别 [转载]

静态类静态类与非静态类的重要区别在于静态类不能实例化&#xff0c;也就是说&#xff0c;不能使用 new 关键字创建静态类类型的变量。在声明一个类时使用static关键字&#xff0c;具有两个方面的意义&#xff1a;首先&#xff0c;它防止程序员写代码来实例化该静态类&#xff…

win10配置JAVA和tomacat环境变量

一、配置JAVA_HOME 二、配置CATALINA_HOME &#xff08;tomacat的环境变量&#xff09; 三、配置PATH 四、命令行检验配置结果&#xff1a; 1、命令行输入java 2、命令行输入javac 3、命令行输入startup.bat 注&#xff1a;如果以上三个命令无报错表示配置成功 转载于:https://…

1032 挖掘机技术哪家强 (20 分)

1032 挖掘机技术哪家强 (20 分) #include<iostream> using namespace std; int main() {int n,k,h,ch[100101]{0},hh0,hhh1;cin>>n;for (int i0;i<n;i){cin>>k>>h;ch[k]h;if (ch[k]>hh) {hhch[k];hhhk;}}cout<<hhh<<" "&…

E20170830-mk

translation n. 翻译; 译本; 转化; 转变; calculate vt. 计算; 估计; 打算&#xff0c;计划; 旨在;erase vt. 抹去; 清除; 擦掉;转载于:https://www.cnblogs.com/lancgg/p/8281741.html

1033 旧键盘打字 (20 分)

1033 旧键盘打字 (20 分) #include<iostream> using namespace std; int main() {int ch[1011]{0};string str1,str2;getline(cin,str1);getline(cin,str2);int len1str1.length(),len2str2.length();for (int i0;i<len1;i) {if (str1[i]>A&&str1[i]<Z…

3485. 最大异或和

最大异或和 #include <iostream> #include <algorithm> using namespace std; const int maxn 100010, M 31 * maxn; int ch[maxn]; int n; int son[M][2], idx 0; int cnt[M];//M一定要这么大 void insert(int x, int v) {int p 0;for (int i 30; ~i; i--){…

B. Sifid and Strange Subsequences

B. Sifid and Strange Subsequences A sequence (b1,b2,…,bk) is called strange, if the absolute difference between any pair of its elements is greater than or equal to the maximum element in the sequence. Formally speaking, it’s strange if for every pair (…

剑指offer 重建二叉树

重建二叉树 题目描述 输入某二叉树的前序遍历和中序遍历的结果&#xff0c;请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6}&#xff0c;则重建二叉树并返回思路&#xff1a;…

y总nb

一般ACM或者笔试题的时间限制是1秒或2秒。 在这种情况下&#xff0c;C代码中的操作次数控制在 107∼108107∼108 为最佳。 下面给出在不同数据范围下&#xff0c;代码的时间复杂度和算法该如何选择&#xff1a; n≤30n≤30, 指数级别, dfs剪枝&#xff0c;状态压缩dp n≤100n…

设计模式 策略模式2 c++11

根据需求的不同 选择不同的策略算法 之前是保存的各种策略类的指针 这里直接使用 function bind 选择对应的算法 代码 // 005.cpp: 定义控制台应用程序的入口点。 //#include "stdafx.h" #include <functional> #include <iostream>using namespace std…

2. 01背包问题

01背包问题 先上版子。 #include<iostream> #include<algorithm> using namespace std; const int maxn 1010; int f[maxn][maxn]; int v[maxn],w[maxn]; int main() {int n,V;cin>>n>>V;for (int i1;i<n;i){cin>>v[i]>>w[i];}for (i…

C++ Websites

C Websites C 推荐网站 1、cprogramming.com 2、cppreference.com 3、cplusplus.com 4、Boost C Library 转载于:https://www.cnblogs.com/xuanyuanchen/p/7457951.html

3. 完全背包问题

完全背包问题 #include <iostream> #include <algorithm> using namespace std; const int maxn 1010; int f[maxn]; int v[maxn], w[maxn]; int main() {int n, V;cin >> n >> V;for (int i 1; i < n; i){cin >> v[i] >> w[i];}for…

python学习(八)定制类和枚举

python定制类主要是实现特定功能&#xff0c;通过在类中定义特定的函数完成特定的功能。 class Student(object):def __init__(self, name):self.name namestudent Student("lilei") print(student) 实现定制类 class Student(object):def __init__(self, name):sel…

4. 多重背包问题 I

多重背包问题 I #include<iostream> #include<algorithm> using namespace std; const int maxn 10010; int f[1001]; int main() {int n,V;cin>>n>>V;for (int i0;i<n;i){int v,w,s;cin>>v>>w>>s;for (int jV;~j;j--){for (in…

题目:16版.雇员的工作职责(一)

题目&#xff1a;16版.雇员的工作职责(一) 1、实验要求 本实验要求&#xff1a;以雇员的日常工作为背景&#xff0c;体验“继承”与“属性复用技术”的运用场景。1-1. 业务说明&#xff1a;1-1.1. 本实验以公司雇员的日常工作模式为业务背景。1-1.2. 公司每个雇员每天都需要进…

架构实战:(一)Redis采用主从架构的原因

架构实战 &#xff08;一&#xff09;Redis采用主从架构的原因 &#xff08;二&#xff09; 如果系统的QPS超过10W&#xff0c;甚至是百万以上的访问&#xff0c;则光是Redis是不够的&#xff0c;但是Redis是整个大型缓存架构中&#xff0c;支撑高并发的架构非常重要的环节。 首…

5. 多重背包问题 II

多重背包问题 II 二进制优化&#xff1a; #include<iostream> #include<vector> #include<algorithm> #include<cstring> using namespace std; int f[10001]; struct node {int v;int w; }; int main() {vector<node>cun;int n,V;cin>>n…