题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5536

题意:数组中求 i,j,k 最大的(A[i] + A[j]) xor A[k] i != j != k
n^2枚举i,j 同时删除字典树中的A[i] A[j] 之后询问A[i] + A[j] 的最大的A[k] 维护最大异或和

代码:

#include <cstdio>
#include <iostream>
#include <queue>
#include <cstring>
#define sf scanf
#define pf printf
using namespace std;
const int maxn = 1000 + 5;
typedef long long LL;
int ch[32 * maxn][2];
LL value[32 * maxn];
int cnt[32 * maxn];
int node_cnt;inline void init(){node_cnt = 1;memset(ch[0],0,sizeof(ch));
}inline void Insert(LL x,int f){int cur = 0;for(int i = 32;i >= 0;--i){int idx = (x >> i) & 1;if(!ch[cur][idx]){memset(ch[node_cnt],0,sizeof(ch[node_cnt]));ch[cur][idx] = node_cnt;cnt[node_cnt] = 0;value[node_cnt++] = 0;}cur = ch[cur][idx];cnt[cur] += f;}value[cur] = x;
}inline LL Query(LL x){int cur = 0;for(int i = 32;i >= 0;--i){int idx = (x >> i) & 1;if(ch[cur][idx ^ 1] && cnt[ch[cur][idx^1]]) cur = ch[cur][idx ^ 1];else cur = ch[cur][idx];}return value[cur];
}
int A[maxn];
int main(){int T,n,ans,temp,tmp2;sf("%d",&T);while( T-- ){init();ans = 0;sf("%d",&n);for(int i = 0;i < n;++i) {sf("%d",&A[i]);Insert(A[i],1);}for(int i = 0;i < n;++i){for(int j = i + 1;j < n;++j){Insert(A[i],-1);Insert(A[j],-1);temp = ( A[i] + A[j] )^ Query(A[i] + A[j]);ans = max(ans,temp);Insert(A[i],1);Insert(A[j],1);}}pf("%d\n",ans);}return 0;
}

HDU 5536 Chip Factory 01字典树相关推荐

  1. HDU 5536 Chip Factory (01字典树)

    传送门:HDU 5536 题目大意: 在一个数组中找出 (s[i]+s[j])^s[k] 最大的值,其中 i.j.k 各不相同. 前至技能:01字典树详解. 思路: 01字典树模板可以解决查找与 x ...

  2. HDU 5536 Chip Factory 字典树+贪心

    给你n个数,a1....an,求(ai+aj)^ak最大的值,i不等于j不等于k 思路:先建字典树,暴力i,j每次删除他们,然后贪心找k,再恢复i,j,每次和答案取较大的,就是答案,有关异或的貌似很多 ...

  3. 字典树,01字典树,可持续化01字典树(总结+例题)

    目录 字典树 01字典树 字典树例题: power oj 2390: 查单词 HDU 1671 Phone List HDU 1004Let the Balloon Rise HDU 1075 Wha ...

  4. HDU 4825:Print Article(01字典树)

    Xor Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 132768/132768 K (Java/Others) Total ...

  5. 字典树01字典树专题对字典树的理解

    对于字典树和01字典树的一点理解: 首先,字典树建树的过程就是按照每个数的前缀来的,如果你要存储一个全小写字母字符串,那么这个树每一个节点最多26个节点,这样的话,如果要找特定的单词的话,按照建树的方 ...

  6. 字典树 01字典树【数据结构】

    题目1:字典树 HDU 1251 统计难题 Problem Description Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以 ...

  7. 字典树与01字典树详解

    [镇楼]   不满足于粗浅的表面了解字典树吗,今天!由我给大家带来!字典树与01字典树的解析!! 目录 [引入] [字典树] [01字典树] [引用参考] [引入] 字典是干啥的?查找字的.那么字典树 ...

  8. hdu5296 01字典树

    根据二进制建一棵01字典树,每个节点的答案等于左节点0的个数 * 右节点1的个数 * 2,遍历整棵树就能得到答案. AC代码: #include<cstdio> using namespa ...

  9. Beautiful Subarrays (01字典树 瞎搞)

    题意: 题解: 一看问的是子序列,并且还是异或. 首先想到01字典树,再一看让你求子序列的个数,大致是想让你把这个序列进行前缀异或处理后然后再01字典树上进行操作吧. 假设01字典树往左边是0右边是1 ...

最新文章

  1. Xamarin Android组件篇教程RecylerView动画组件RecylerViewAnimators(1)
  2. Facebook 上一位大佬发表的代码看法
  3. Web本地计算发展史
  4. 20分钟快速了解Redis
  5. 区块链 State Machine Replication (SMR)是什么
  6. UVA 299 - Train Swapping(冒泡排序)
  7. 华中师范大学计算机学院在哪个校区,关于《计科,你的力量在哪里?》★华师计算机科学系★研究生情况~~过来人指点下...
  8. IM即时通讯加入“对方正在输入…”真的好吗?
  9. m126a linux驱动下载,惠普HP LaserJet Pro M126a MFP 驱动
  10. sas字段有html脚本,sas 实现自动化报表格式之定性变量
  11. 2035年进入现代化交通强国行列
  12. 手把手教你找回学信网原来的登记手机号码
  13. mysql初始化密码_MySQL5.7初始密码查看及重置
  14. 京东云引擎:免费好用的web应用托管平台
  15. (一)JAVA基于OPENXML的word文档插入、合并、替换操作系列之基础篇
  16. C# 客户端急速缓存方法 使用哈希表
  17. 智付科技集团2018全球合作伙伴大会成功举办 5大战略布局首度公开
  18. 用pytorch官网命令 安装pytorch1.10.1+CUDA11.1报错
  19. Dagger2 依赖注入之@Provides 分析
  20. 微信公众号粉丝快速涨粉的五个方法

热门文章

  1. java swing界面跳转_java按钮实现页面跳转
  2. arcgis 工具箱
  3. ubuntu关机和重启命令
  4. vm眼影真的好用吗_便宜的眼影盘有什么坏处?
  5. 一张图不用,纯CSS 做个生日贺卡
  6. idea如何修改默认浏览器
  7. maven在idea中设置
  8. 分布式一致性——Paxos
  9. 直流电压采集显示系统
  10. 这几天搬家一个DEDE 的网站 遇到了 图片大小错误的问题