Xor Sum 01字典树 hdu4825
Xor Sum
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 132768/132768 K (Java/Others)
Total Submission(s): 4119 Accepted Submission(s): 1796
输入的第一行是一个整数T(T < 10),表示共有T组数据。
每组数据的第一行输入两个正整数N,M(<1=N,M<=100000),接下来一行,包含N个正整数,代表 Zeus 的获得的集合,之后M行,每行一个正整数S,代表 Prometheus 询问的正整数。所有正整数均不超过2^32。
对于每个询问,输出一个正整数K,使得K与S异或值最大。
4
3
4
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
#include<queue>
#define inf 0x3fffffff
#define Memset(x, a) memset(x, a, sizeof(x))
using namespace std;
typedef long long LL;
const int maxn = + ;
int tree[ * maxn][];
LL val[ * maxn];
int sz;
void init() {
memset(tree[], , sizeof(tree[]));
// Memset(tree[0],0);
sz = ;
}
void add(LL a) {
int u = ;
for (int i = ; i >= ; i--) {
int b = ((a >> i) & ) ;
if (!tree[u][b]) {
memset(tree[sz], , sizeof(tree[sz]));
// Memset(tree[sz],0);
val[sz] = ;
tree[u][b] = sz++;
}
u = tree[u][b];
}
val[u] = a;
}
LL query(LL a ) {
int u = ;
for (int i = ; i >= ; i--) {
int b = ((a >> i) & ) ;
if (tree[u][b ^ ]) u = tree[u][b ^ ];
else u = tree[u][b];
}
return val[u];
}
int main() {
int t, n, m, cas = ;
LL a;
scanf("%d", &t);
while(t--) {
init();
scanf("%d%d", &n, &m);
for (int i = ; i < n ; i++) {
scanf("%lld", &a);
add(a);
}
printf("Case #%d:\n", cas++);
for (int i = ; i < m ; i++) {
scanf("%d", &a);
printf("%lld\n", query(a));
}
}
return ;
}
Xor Sum 01字典树 hdu4825的更多相关文章
- HDU 4825 Xor Sum(字典树)
嗯... 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4825 这道题更明确的说是一道01字典树,如果ch[u][id^1]有值,那么就向下继续查找/ ...
- HDU-4825 Xor Sum,字典树好题!
Xor Sum 一遍A了之后大呼一声好(keng)题!debug了两小时~~~~百度之星资格赛,可以. 题意:给你一个n个元素的数组,m次查询,每次输入一个数k要求从数组中找到一个数与k异或值最大,输 ...
- HDU4825 Xor Sum(字典树解决最大异或问题)
Zeus 和 Prometheus 做了一个游戏,Prometheus 给 Zeus 一个集合,集合中包含了N个正整数,随后 Prometheus 将向 Zeus 发起M次询问,每次询问中包含一个正整 ...
- HDU-4825 Xor Sum(字典树求异或最大值)
题目链接:点此 我的github地址:点此 Problem Description Zeus 和 Prometheus 做了一个游戏,Prometheus 给 Zeus 一个集合,集合中包含了N个正整 ...
- NBUT 1525 Cow Xor(01字典树+前缀思想)
[1525] Cow Xor 时间限制: 2000 ms 内存限制: 65535 K 问题描述 农民约翰在喂奶牛的时候被另一个问题卡住了.他的所有N(1 <= N <= 100,000)个 ...
- [Hdu4825]Xor Sum(01字典树)
Description Zeus 和 Prometheus 做了一个游戏,Prometheus 给 Zeus 一个集合,集合中包含了N个正整数,随后 Prometheus 将向 Zeus 发起M次询问 ...
- 2014百度之星资格赛—— Xor Sum(01字典树)
Xor Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 132768/132768 K (Java/Others) Total ...
- Codeforces 979 D. Kuro and GCD and XOR and SUM(异或和,01字典树)
Codeforces 979 D. Kuro and GCD and XOR and SUM 题目大意:有两种操作:①给一个数v,加入数组a中②给出三个数x,k,s:从当前数组a中找出一个数u满足 u ...
- HDU 4825 Xor Sum (模板题)【01字典树】
<题目链接> 题目大意: 给定n个数,进行m次查找,每次查找输出n个数中与给定数异或结果最大的数. 解题分析: 01字典树模板题,01字典树在求解异或问题上十分高效.利用给定数据的二进制数 ...
随机推荐
- table中 点击某一行变色
效果图: <html> <head> <meta http-equiv="Content-Type" content="text/html; ...
- 单向循环链表C语言实现
我们都知道,单向链表最后指向为NULL,也就是为空,那单向循环链表就是不指向为NULL了,指向头节点,所以下面这个程序运行结果就是,你将会看到遍历链表的时候就是一个死循环,因为它不指向为NULL,也是 ...
- UTL_HTTP Call a Web Service and Pass Parameters as Part of the URL
SET DEFINE OFF SET SERVEROUTPUT ON DECLARE req UTL_HTTP.REQ; resp UTL_HTTP.RESP; value VARCHAR2(3276 ...
- nfc近场通信
NFC简介: Near Field Communication 近场通信,是一种数据传输技术. 与wifi.蓝牙.红外线等数据传输技术的一个主要差异就是有效距离一般不能超过4cm. NFC支持3种工作 ...
- 采购,接收数据收集SQL汇总(从订单->接收->INVOICE所有数据关联SQL)
INDEX OF QUERIES Source Document: Purchase Order: 1: po_headers_all (sql) 2: po_lines_all (sql) 3: p ...
- Mina源码阅读笔记(三)-Mina的连接IoAccpetor
其实在mina的源码中,IoService可以总结成五部分service责任.Processor线程处理.handler处理器.接收器和连接器,分别对应着IoService.IoProcessor.I ...
- RecyclerView 与 Scrollview 搭配使用的两个坑
RecyclerView & Scrollview & wrap_content RecyclerView wrap_content 用android.support.v4.widge ...
- 关于MySQL 5.6.24 解压缩版重启电脑后,无法启动的问题
最近的项目需要用到mysql,想起以前安装过,就得应该没啥问题.也不知道是软件更新换代的问题,还是版权问题,网上找的msi版本的mysql都很难安装,一开始要安装.NET,我忍了,然后又要安装Visu ...
- angular4 ionic3 app
对于angular系列来说,从2到4仅仅是版本号的变更,绝大部分都是兼容的. 如果按照规范编写代码,一般来说是没有问题的. 学习angular4 快速入门参考 https://www.an ...
- MySQL中的行级锁,表级锁,页级锁
在计算机科学中,锁是在执行多线程时用于强行限制资源访问的同步机制,即用于在并发控制中保证对互斥要求的满足. 在数据库的锁机制中介绍过,在DBMS中,可以按照锁的粒度把数据库锁分为行级锁(INNODB引 ...