143. 最大异或对【贪心 trie】
贪心,尽可能走不同的路。
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
typedef long long int LL;
int son[N*31][2],idx;
int a[N],n;
void insert(int x)
{int p=0;for(int i=30;i>=0;i--){int u=x>>i&1;if(!son[p][u]) son[p][u]=++idx;p=son[p][u];}
}
LL query(int x)
{LL sum=0,p=0;for(int i=30;i>=0;i--){int u=x>>i&1;if(son[p][!u]) sum+=1<<i,p=son[p][!u];else p=son[p][u];}return sum;
}
int main(void)
{cin>>n;for(int i=1;i<=n;i++) cin>>a[i];LL ans=0;for(int i=1;i<=n;i++){ans=max(ans,query(a[i]));insert(a[i]);}cout<<ans;return 0;
}
143. 最大异或对【贪心 trie】相关推荐
- 143. 最大异或对
模板:tire 复杂度:O(nlogn) 143. 最大异或对 #include <iostream> #include <algorithm> using namespace ...
- LeetCode 421. 数组中两个数的最大异或值(Trie树)
1. 题目 给定一个非空数组,数组中元素为 a0, a1, a2, - , an-1,其中 0 ≤ ai < 231 . 找到 ai 和aj 最大的异或 (XOR) 运算结果,其中0 ≤ i, ...
- AcWing 143. 最大异或对
题目连接 https://www.acwing.com/problem/content/145/ 思路 贪心的想,如果我们想找到一个异或的最大值,那么我们肯定想每一位最好都是相反的,如果没有这样的情况 ...
- 【bzoj4567】[Scoi2016]背单词 贪心+trie树
我个傻逼,这么水的题还调了那么久. 把所有的串都反过来,建trie树,很明显,不同子树间是不影响的. 一定是先选择父亲节点再选子节点,同一个节点先选子树大小最小的儿子即可. 一开始想错了,以为可以直接 ...
- XOR Specia-LIS-t 异或和 贪心
题意: 给一序列,问能否将这序列划分为若干个连续的子序列,使得这些这些子序列的最长上升子序列长度的异或和为0 思路: 性质:偶数(包含0)个1和若干0异或和即0,其它情况即1 如果n是偶数,直接就ye ...
- YBTOJ洛谷P4551:最长异或路径(trie树)
洛谷传送门 文章目录 题目描述 解析 代码 题目描述 解析 本题关键就在于一点: 若把每个点的深度dep[i]定义为从根到节点边权的异或和 那么i到j的路径异或和可以表示为: dep[i] ^ dep ...
- 【CodeForces - 289E 】Polo the Penguin and XOR operation (数学,异或,贪心)
题干: Little penguin Polo likes permutations. But most of all he likes permutations of integers from 0 ...
- LeetCode 1707. 与数组中元素的最大异或值(Trie树)
文章目录 1. 题目 2. 解题 1. 题目 给你一个由非负整数组成的数组 nums .另有一个查询数组 queries ,其中 queries[i] = [xi, mi] . 第 i 个查询的答案是 ...
- Codeforces.888G.Xor-MST(Borůvka算法求MST 贪心 Trie)
题目链接 \(Description\) 有一张\(n\)个点的完全图,每个点的权值为\(a_i\),两个点之间的边权为\(a_i\ xor\ a_j\).求该图的最小生成树. \(n\leq2*10 ...
最新文章
- SAP MM 物料成本价格修改历史的查询
- 在Ubuntu Desktop 12.04 LTS从源代码运行ADempiere 3.6.0 LTS
- python物联网通信_物联网通信RESTDemo示例程序(Python版本)
- delphi与api中的加一减一函数
- ubuntu上最使用jni最简单易懂的例子
- 2021年阿里云采购季大促主会场全攻略
- PHP如何设置主机头,怎么给apache添加主机头?apache添加主机头方法
- Kinect for Windows SDK开发入门(三):基础知识 下
- c语言人事管理系统,c语言人事管理系统
- (三十六)让常量只读——const限定符
- JAVA--获取当前日期两个月之前的日期
- catia二次开发:人机交互select,start command
- 面试问题总结——关于YOLO系列(二)
- VS2015 LoadLibrary加载DLL失败的解决方案,GetLastError()返回值193
- 内存管理基础学习笔记 - 4.3 缺页中断处理 - handle_pte_fault
- H5: 关于底部导航使用“fixed”会遮住网页最下面内容的解决办法!
- 100集华为HCIE安全培训视频教材整理 | Agile Controller终端安全管理特性(三)
- 10-Stapler-可执行文件提权-内核提权-les.sh-linpeas.sh
- 两万条数据需要做个数据图_第3关:基于Excel对电商母婴数据进行分析
- java stream()操作