P3812 【模板】线性基
题目背景
这是一道模板题。
题目描述
给定n个整数(数字可能重复),求在这些数中选取任意个,使得他们的异或和最大。
输入输出格式
输入格式:第一行一个数n,表示元素个数
接下来一行n个数
输出格式:
仅一行,表示答案。
输入输出样例
输入样例#1:2
1 1
输出样例#1:
1
说明
$1≤n≤50,0≤Si≤250$代码
**线性基构造** $\circ$逆序枚举$t$所有为$1$的二进制位$j= L\to1$ $\qquad \circ$如果$a_j\ne 0,t=t\,xor\,a_j$ $\qquad \circ$如果$a_j\ = 0$则 $\qquad\qquad \circ$枚举$k\in \left[ 0\to j\right),t$的第$k$位为$1$$,t =t\,xor\,a_k$ $\qquad\qquad \circ$枚举$k\in \left(j\to L\right],t$的第$k$位为$1$$,a_k =a_k\,xor\,t$ 最大值为$xor sum\,a_i$ ```cpp #include