luogu 3812 【模板】 线性基
2024-09-05 13:34:44
线性基是一个支持在集合里插入数并查询最大子集异或值
#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());
}
最新文章
- PAT甲级 1001. A+B Format (20)
- python第二天基础1-1
- 在Asp.Net MVC中PartialView与EditorFor和DisplayFor的区别
- iis错误记录
- HDU 4737 A Bit Fun
- MVC 模型
- Android studio 下JNI编程实例并生成so库
- DataBase 之 实用积累
- Maven学习:Eclipse使用maven构建web项目(转)
- python SyntaxError: Non-ASCII character &#39;\xd5&#39; in file
- Android 进程和线程
- Linux系统下给非root用户添加sudo权限
- Ambari源代码分析之Resource.Type与ResourceProvider相应关系
- selenium webdriver (python)大全
- Java开发笔记(四十六)类的构造方法
- 【C编程基础】C程序常用函数
- Modbus库开发笔记之十一:关于Modbus协议栈开发的说明
- 使用requests模块post payload请求
- PyQT5速成教程-1 简介与环境搭建
- openssl:AES CBC PKCS5 加解密 (C/GOLANG)
热门文章
- 记一次CDH修改IP
- ListView 自己定义BaseAdapter实现单选打勾(无漏洞)
- django(一)--- 安装django
- Ubuntu14下Hadoop开发&;lt;2&;gt; 编译64位Hadoop2.4
- import caffe时出错:can not find module skimage.io
- 深度解析开发项目之 01 - SVProgressHUD用法
- .Net Core表单验证
- Linux中的du和df命令
- UNIX网络编程卷1 时间获取程序client TCP 使用非堵塞connect
- Linux学习笔记--ps命令(显示当前进程的命令)