COJ-1216 异或最大值
来源:互联网 发布:mac上铃声软件 编辑:程序博客网 时间:2024/05/18 18:15
题目:
Y - 异或最大值
拿着这题就写了一发暴力O(n^2)的果然超时,然而也没啥思路,看了题解基本上都是用的01字典树,奈何字典树只会模板题,照着别人的代码敲了敲,算是稍微理解了点字典树的构造了吧,贴个代码留个纪念.思路就是对每个a[i]从它的最高位去贪心的找能让他获得最大的异或的值。
代码:
#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#include<string>#include<vector>#include<stack>#include<bitset>#include<cstdlib>#include<cmath>#include<set>#include<list>#include<deque>#include<map>#include<queue>using namespace std;typedef long long ll;const double PI = acos(-1.0);const double eps = 1e-6;const int INF = 1000000000;const int maxn = 111111;int T,n,m,ans;int a[maxn];struct Trie{ Trie *bit[2]; int v;}*root;void init(){ ans=-1; root=new Trie; root->v=0; for(int i=0;i<=1;i++) root->bit[i]=0;}void CreateTrie(int x){ Trie *q,*p=root; for(int i=31;i>=0;i--) { int k=(x>>i)&1; if(p->bit[k]==NULL) { q=new Trie; q->v=p->v+1; for(int j=0;j<=1;j++) q->bit[j]=NULL; p->bit[k]=q; } p=p->bit[k]; }}int FindTrie(int x){ int ans=0; Trie *p=root; for(int i=31;i>=0;i--) { int k=(x>>i)&1; ans<<=1; if(p->bit[!k]!=NULL) { p=p->bit[!k]; ans+=1; } else p=p->bit[k]; } return ans;}void Release(Trie *p){ if(p==NULL) return; for(int i=0;i<=1;i++) { if(p->bit[i]!=NULL) Release(p->bit[i]); } free(p); root=NULL; return;}int main(){ while(scanf("%d",&n)!=EOF){ init(); for(int i=0;i<n;i++) { scanf("%d",&a[i]); CreateTrie(a[i]); } for(int i=0;i<n;i++) ans=max(ans,FindTrie(a[i])); printf("%d\n",ans); Release(root); } return 0;}
阅读全文
0 0
- COJ 1216 异或最大值
- COJ-1216 异或最大值
- 中南大学COJ 1216: 异或最大值(数据结构)
- COJ 1216 最大异或值
- CSU 1216 异或最大值
- csu-1216: 异或最大值
- CSUOJ 1216 异或最大值 (01Trie)
- CSU 1216 —— 异或最大值
- CSU 1216 异或最大值【字典树】
- CSU 1216 异或最大值 01trie
- CSU 1216 异或最大值(01Trie)
- 异或最大值
- CSU_1216【异或最大值】
- CSU_1216(异或最大值)
- CSU-1216: 异或最大值-trie-01字典树
- CSU 1216: 异或最大值(字典树+贪心)
- 异或最大值(01字典树)
- 【GZOJ】1314——异或最大值
- sqlserver关联更新问题
- VS2015动态库编程基础篇资源汇总
- 加油!
- HDU 1730 Northcott Game (Nim博弈)
- OpenCV基础——threshold函数的使用
- COJ-1216 异或最大值
- 基于Spring的AOP实现自定义annotation操作日志
- js 回调
- 并查集
- UVA 208 Firetruck
- Re:从零开始的Spring Security Oauth2(三)
- 人脸识别demo
- HDU 2243 AC自动机+矩阵快速幂
- LESS 学习demo