一想到xor还要求最大类似的题,字典树效率高。

此代码c++ TLE。

#include<stdio.h>
#include<string.h>
const int maxn = ;
struct node
{
int num;
node *next[];
void init()
{
next[]=next[]=NULL;
num=;
}
};
node *trie,*p=NULL;
int a[maxn],b[maxn],n;
int max(int x,int y)
{
return x>y?x:y;
}
void init()
{
trie=new node;
trie->init();
}
void add(int x)
{
p=trie;
int i,j;
for(i=;i>=;i--)
{
int t;
if(x&(<<i))
t=;
else t=;
if(t)
{
if(p->next[t]==NULL)
{
node *q=new node;
q->init();
p->next[t]=q;
}
p=p->next[t];
p->num++;
}
else
{
if(p->next[t]==NULL)
{
node *q=new node;
q->init();
p->next[t]=q;
}
p=p->next[t];
p->num++;
}
}
}
void Del(int x)
{
p=trie;
int i;
for(i=;i>=;i--)
{
int t;
if(x&(<<i))
t=;
else t=;
p=p->next[t];
p->num--;
}
}
int query(int x)
{
p=trie;
int fx=;
for(int i=;i>=;i--)
{
int t;
if(x&(<<i))t=;
else t=;
if(t)
{
if(p->next[]!=NULL&&p->next[]->num!=)
{
p=p->next[];
}
else
{
fx=fx^(<<i);
p=p->next[];
}
}
else
{
if(p->next[]!=NULL&&p->next[]->num!=)
{
fx=fx^(<<i);
p=p->next[];
}
else p=p->next[];
}
}
return fx;
}
void Del(node *trie)
{
for(int i=;i<=;i++)
{
if(trie->next[i])
Del(trie->next[i]);
}
delete trie;
}
int main()
{
int i,j,t;
scanf("%d",&t);
while(t--)
{
init();
scanf("%d",&n);
for(i=;i<n;i++)
{
scanf("%d",&a[i]);
add(a[i]);
}
int ans=;
for(i=;i<n;i++)
{
for(j=;j<n;j++)
{
if(i==j)
continue;
Del(a[i]);
Del(a[j]);
int fp=a[i]+a[j];
int ret=query(fp);
//printf("%d ",ret);
ans=max(ans,fp^ret);
add(a[i]);
add(a[j]);
}
}
printf("%d\n",ans);
Del(trie);
}
}

hdu5536 字典树xor的更多相关文章

  1. hdu4825 字典树 XOR

    用字典树思想来做.对于一个数,给出他的二进制,然后更具二进制建立字典树,然后每次询问的时候的数也给出二进制,如果当前为1,那就向0走,为0,向1走. #include<stdio.h> # ...

  2. HDU 4825 Xor Sum(经典01字典树+贪心)

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

  3. 字典树-百度之星-Xor Sum

    Xor Sum Problem Description Zeus 和 Prometheus 做了一个游戏,Prometheus 给 Zeus 一个集合,集合中包括了N个正整数,随后 Prometheu ...

  4. HDU 4825 Xor Sum 字典树+位运算

    点击打开链接 Xor Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 132768/132768 K (Java/Others) ...

  5. 2014百度之星第三题Xor Sum(字典树+异或运算)

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

  6. HDU--5269 ZYB loves Xor I (字典树)

    题目电波: HDU--5269 ZYB loves Xor I 首先我们先解决 ai xor aj 每个数转化为二进制  我们用字典树统计 每个节点 0 和 1 的出现的个数 #include< ...

  7. HDU--4825 Xor Sum (字典树)

    题目链接:HDU--4825 Xor Sum mmp sb字典树因为数组开的不够大一直wa 不是报的 re!!! 找了一下午bug 草 把每个数转化成二进制存字典树里面 然后尽量取与x这个位置上不相同 ...

  8. 51nod 1295 XOR key 可持久化01字典树

    题意 给出一个长度为\(n\)的正整数数组\(a\),再给出\(q\)个询问,每次询问给出3个数,\(L,R,X(L<=R)\).求\(a[L]\)至\(a[R]\)这\(R-L+1\)个数中, ...

  9. CH 1602 - The XOR Largest Pair - [字典树变形]

    题目链接:传送门 描述在给定的 $N$ 个整数 $A_1, A_2,\cdots,A_N$ 中选出两个进行xor运算,得到的结果最大是多少? 输入格式第一行一个整数 $N$,第二行 $N$ 个整数 $ ...

随机推荐

  1. 不会UML的程序员不是好构架师?

    情况描述 我已经工作两年半, 参加过一个网页游戏项目和一个IOS应用项目, 自以为参与度非常高, 也经常涉及到底层引擎和主逻辑业务. 目前想更快的向构架师方向发展. 最近在看\<Learning ...

  2. extern "C" 用法解析

    extern "c"用法解析 作者 作者Jason Ding ,链接http://www.jianshu.com/p/5d2eeeb93590 引言 C++保留了一部分过程式语言的 ...

  3. 权限框架 - shiro 授权demo

    之前说了权限认证,其实也就是登录验证身份 这次来说说shiro的授权 shiro可以针对角色授权,或者访问资源授权 两者都行,但是在如今的复杂系统中,当然使用后者,如果你是小系统或者私活的话,前者即可 ...

  4. 纯js和纯css+html制作的手风琴的效果

    一:纯css+html的手风琴效果 这种用css写的手风琴比较简单,主要是应用到css中的,transition属性. 代码如下: <!DOCTYPE HTML> <html> ...

  5. 创建自定义的Cocos2d-x场景

    操作步骤 1.创建cocos2d-x工程 2.新建 Scene1.cpp Scene1.h Scene1.h代码 #ifndef __SCENE1_H__#define __SCENE1_H__ #i ...

  6. java 15 - 9 集合框架之 栈、队列、数组 和 链表

  7. 泛型类型的协变(covariant)和逆变

    官网:http://msdn.microsoft.com/zh-cn/library/dd799517.aspx 原文链接:http://book.51cto.com/art/201112/30857 ...

  8. Delphi7下SuperObject的JSON使用方法

    uses superobject; procedure TForm1.FormCreate(Sender: TObject); var aJson: ISuperObject; aSuperArray ...

  9. Windows Phone:自定义字体在xaml和代码中使用

    最近,我的小应用<认字>更新了一个能发声的版本,朋友对Speech做读音没有兴趣,反而对其中使用的楷体文字表示了兴趣,也许Speech的文章比较多,这次我对这个自定义字体在xaml和代码中 ...

  10. angularjs中只显示选中的radio的值

    angularjs中,只显示选中的radio的值.主要是相同的radio,name属性值要相同还有ng-model的值要相同,同时要指定value值.这样选中的时候就会在下面的div中显示选中的值了. ...