线性基是一个支持在集合里插入数并查询最大子集异或值

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<algorithm>
#include<queue>
#include<vector>
#include<map>
#include<set>
#define ll long long
#define db double
#define inf 2139062143
#define MAXN 100100
#define MOD 998244353
#define rep(i,s,t) for(register int i=(s),i##__end=(t);i<=i##__end;++i)
#define dwn(i,s,t) for(register int i=(s),i##__end=(t);i>=i##__end;--i)
#define ren for(register int i=fst[x];i;i=nxt[i])
#define pb(i,x) vec[i].push_back(x)
#define pls(a,b) (a+b)%MOD
#define mns(a,b) (a-b+MOD)%MOD
#define mul(a,b) (1LL*(a)*(b))%MOD
using namespace std;
inline ll read()
{
ll x=,f=;char ch=getchar();
while(!isdigit(ch)) {if(ch=='-') f=-;ch=getchar();}
while(isdigit(ch)) {x=x*+ch-'';ch=getchar();}
return x*f;
}
ll p[];int n,m;
void ins(ll x) {dwn(i,,) if(x>>i&1LL) {if(!p[i]) {p[i]=x;break;}x^=p[i];}}
ll query(ll res=) {dwn(i,,) res=max(res,res^p[i]);return res;}
int main()
{
n=read();rep(i,,n) ins(read());printf("%lld\n",query());
}

最新文章

  1. PAT甲级 1001. A+B Format (20)
  2. python第二天基础1-1
  3. 在Asp.Net MVC中PartialView与EditorFor和DisplayFor的区别
  4. iis错误记录
  5. HDU 4737 A Bit Fun
  6. MVC 模型
  7. Android studio 下JNI编程实例并生成so库
  8. DataBase 之 实用积累
  9. Maven学习:Eclipse使用maven构建web项目(转)
  10. python SyntaxError: Non-ASCII character &#39;\xd5&#39; in file
  11. Android 进程和线程
  12. Linux系统下给非root用户添加sudo权限
  13. Ambari源代码分析之Resource.Type与ResourceProvider相应关系
  14. selenium webdriver (python)大全
  15. Java开发笔记(四十六)类的构造方法
  16. 【C编程基础】C程序常用函数
  17. Modbus库开发笔记之十一:关于Modbus协议栈开发的说明
  18. 使用requests模块post payload请求
  19. PyQT5速成教程-1 简介与环境搭建
  20. openssl:AES CBC PKCS5 加解密 (C/GOLANG)

热门文章

  1. 记一次CDH修改IP
  2. ListView 自己定义BaseAdapter实现单选打勾(无漏洞)
  3. django(一)--- 安装django
  4. Ubuntu14下Hadoop开发&amp;lt;2&amp;gt; 编译64位Hadoop2.4
  5. import caffe时出错:can not find module skimage.io
  6. 深度解析开发项目之 01 - SVProgressHUD用法
  7. .Net Core表单验证
  8. Linux中的du和df命令
  9. UNIX网络编程卷1 时间获取程序client TCP 使用非堵塞connect
  10. Linux学习笔记--ps命令(显示当前进程的命令)