[LOJ#6060][线性基]2017 山东一轮集训 Day1. Set
来源:互联网 发布:软件开发过程检测规范 编辑:程序博客网 时间:2024/06/04 19:30
学一发线性基
首先可以发现
单独考虑
考虑用线性基,因为要x1+x2最大,所以越高位的x的为0的位要优先确定,改变下贪心顺序求满足条件的最大的x2就可以了
#include <cstdio>#include <iostream>#include <algorithm>#include <set>using namespace std;const int N=100010;typedef long long ll;int n;ll ans,x,a[N];inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; return p1==p2&&(p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++;}inline void rea(int &x){ char c=nc(); x=0; for(;c>'9'||c<'0';c=nc());for(;c>='0'&&c<='9';x=x*10+c-'0',c=nc());}inline void rea(ll &x){ char c=nc(); x=0; for(;c>'9'||c<'0';c=nc());for(;c>='0'&&c<='9';x=x*10+c-'0',c=nc());}struct LB{ ll a[65]; void insert(ll x,ll lim){ for(int i=60;~i;i--) if((x>>i&1)&&!(lim>>i&1)){ if(a[i]) x^=a[i]; else{ a[i]=x; return; } } for(int i=60;~i;i--) if((x>>i&1)&&(lim>>i&1)){ if(a[i]) x^=a[i]; else{ a[i]=x; return ; } } } ll query(ll lim){ ll ret=0; for(int i=60;~i;i--) if(!(ret>>i&1)&&!(lim>>i&1)) ret^=a[i]; for(int i=60;~i;i--) if(!(ret>>i&1)&&(lim>>i&1)) ret^=a[i]; return ret; }}L;int main(){ rea(n); for(int i=1;i<=n;i++) rea(a[i]),x^=a[i]; for(int i=1;i<=n;i++) L.insert(a[i],x); printf("%lld\n",L.query(x)^x); return 0;}
阅读全文
0 0
- [LOJ#6060][线性基]2017 山东一轮集训 Day1. Set
- [DP][倍增NTT]LOJ#6059. 2017 山东一轮集训 Day1. Sum
- [倍增NTT][DP] LOJ#6059. 「2017 山东一轮集训 Day1」Sum
- LOJ #6077. 「2017 山东一轮集训 Day7」逆序对
- [线段树][二分图 霍尔定理]LOJ#6062 && 2017 山东一轮集训 Day2. Pair
- [计数][容斥] LOJ#6065 || BZOJ4927 && 2017 山东一轮集训 Day3. 第一题
- LOJ #6077. 「2017 山东一轮集训 Day7」逆序对
- [霍尔定理]「2017 山东一轮集训 Day2」LOJ 6062——PAIR
- [动态网络 网络流] LOJ#6068.「2017 山东一轮集训 Day4」棋盘
- [最短路 杂题] LOJ#6075. 「2017 山东一轮集训 Day6」重建
- [莫队维护DP] LOJ#6074. 「2017 山东一轮集训 Day6」子序列
- [费用流]LOJ#6079. 「2017 山东一轮集训 Day7」养猫
- [后缀自动机 DP] LOJ#6071. 「2017 山东一轮集训 Day5」字符串
- [分块 回文自动机] LOJ#6070. 「2017 山东一轮集训 Day4」基因
- [容斥 DP] LOJ#6077. 「2017 山东一轮集训 Day7」逆序对
- loj #6062. 「2017 山东一轮集训 Day2」Pair(线段树)
- LOJ 6100 「2017 山东二轮集训 Day1」第一题
- [树的同构][二分][可并堆维护哈希] LOJ#6066 || BZOJ4928 && 2017 山东一轮集训 Day3. 第二题
- 文件的读取和写入
- pmfs安装(基于3.11.8内核版本)
- MySQL大表优化方案(最全面)
- STL
- pascal境界~~
- [LOJ#6060][线性基]2017 山东一轮集训 Day1. Set
- 并查集详解(转)
- 数学算法:CF534A-Exam(思维)
- iOS 系统提示框是否同意获取当前位置提示框自动消失
- Java的native方法
- 数组复制的几种常见用法
- BZOJ 2464 中山市选[2009]小明的游戏 SPFA
- Miller_rabin 测试素数
- POJ 2828 Buy Tickets&POJ 2299 Ultra-QuickSort