HDU 5536 Chip Factory(字典树+经典应用)
2015-11-23 14:48
423 查看
题目链接
题意:给你n个数,问你max(a[i]+a[j])xor(a[k])的值,(i!=j!=k)
解答:这道题目和这道题基本上是一样的,但是这里要求三个数是不一样的 ,所以我们需要增加一个val数组,标示该位置是不是可以使用。
题意:给你n个数,问你max(a[i]+a[j])xor(a[k])的值,(i!=j!=k)
解答:这道题目和这道题基本上是一样的,但是这里要求三个数是不一样的 ,所以我们需要增加一个val数组,标示该位置是不是可以使用。
#include<cstdio> #include<algorithm> #include<iostream> #include<cstring> //#include<bits/stdc++.h> using namespace std; #define LL long long #define pb push_back #define X first #define Y second #define cl(a,b) memset(a,b,sizeof(a)) typedef pair<long long ,long long > P; const int maxn=1000+100; const LL inf=1LL<<45; const LL mod=1e9+7; struct Tree{ int Next[maxn*maxn][2]; LL End[maxn*maxn]; LL val[maxn*maxn]; int root,L; int newNode(){ cl(Next[L],-1); End[L]=0; return L++; } void init(){ L=0; root=newNode(); cl(val,0); } void Insert(LL x,LL vl){ int now=root; for(int i=32;i>=0;i--){ int v=(x&(1LL<<i))?1:0; if(Next[now][v]==-1){ Next[now][v]=newNode(); } now=Next[now][v]; val[now]+=vl; } End[now]=x; } LL query(LL x){ //printf("x = %lld\n",x); int now=root; for(int i=32;i>=0;i--){ int v=(x&(1LL<<i))?1:0; if(val[Next[now][!v]]&&Next[now][!v]!=-1){ now=Next[now][!v]; } else { now=Next[now][v]; } } //printf("End = %lld\n",End[now]); return End[now]^x; } }; Tree tree; LL a[maxn]; int main(){ int T;scanf("%d",&T); while(T--){ int n;scanf("%d",&n); tree.init(); for(int i=0;i<n;i++){ scanf("%lld",&a[i]); } for(int i=0;i<n;i++){ tree.Insert(a[i],1); } LL ans=0; for(int i=0;i<n;i++){ tree.Insert(a[i],-1);//使用前删掉 for(int j=1+i;j<n;j++){ tree.Insert(a[j],-1); ans=max(ans,tree.query(a[i]+a[j])); tree.Insert(a[j],1);//再加回去 } tree.Insert(a[i],1); } printf("%lld\n",ans); } return 0; }
相关文章推荐
- 速卖通接口签名算法--HMAC
- SharedPreferences记住登录名、密码
- Excel文件的上传下载(一)
- lambda高级进阶--返回函数
- C# Upload
- iOS crash分析
- yum 安装 出现GPG密钥失败
- 为什么说RESTful对程序员如此重要
- 定制UIButton中文字和图片的位置
- 教你如何快速安装hibernate tools?
- centos 安装 protobuf
- 019--VS2013 C++ 多背景循环动画
- Ⅰ.10 如何创建测试失败和出错时的自动化截屏
- Android Ndk: 如何从native层直接获取 assets文件夹下的文件
- lambda高级进阶--表达式参数
- linux centos目录结构(一)
- 错误日志记录
- html中offsetTop、clientTop、scrollTop、offsetTop各属性介绍
- lambda高级进阶--表达式参数
- C# ImageHelper