1. 什么是线性基?
线性基是一组基”
a[1],a[2]...a[n]
”,
a[i]中数的最高位为i
,从原数组构造而来,且这一组基相互亦或组成的值域和原数组中的数相互亦或得到的值域相同。
2. 如何构造线性基
vector<LL> base;
for(auto it : ans) {
LL t = it;
for(auto v:base) {
t = min(t, t^v);
}
if(t) base.push_back(t);
}
3. 线性基有什么性质
任意非空的线性基的集合相互亦或组成的数不为
0
。
BZOJ2460
4. 线性基的模型
1.
初始答案为
0
, 贪心的看异或上当前的基之后会不会使得答案变大。
HDU5544
2. 当前有个数
初始答案为
x
<script type="math/tex" id="MathJax-Element-101">x</script>, 贪心的看异或上当前的基之后会不会使得答案变大。
BZOJ2115
后日谈:
线性基其实就最大线性无关组,基的个数为无关变元的个数,也就是每个数按二进制列出矩阵后的矩阵的秩,代码换成了更容易懂的形式。
codeforces 895C