\(span(\{{\bf{v_1, v_2, \ldots, v_n}}\}) = \{\sum_{i=1}^{n} x_i {\bf{v_i}} \mid x_i \in R \}\)
向量集合\(V\)上的线性基\(B\)是使得\(span(B) = span(V)\)的最小集合。
OI中一般只研究模2意义下的n维向量线性运算,也即异或。
由此我们可以联想到高斯消元,我们插入一个n维向量(数),如果当前位置有值且线性基中不存在当前位置有值的向量,则将其插入,否则将该位置消去(异或上线性基中相应位置),然后检查下一个位置。若插入向量为空则直接退出。
贪心的从高位向低位遍历线性基。
若异或上当前的数能使结果更大,则异或,否则跳过。
原文:https://www.cnblogs.com/BunnyLutts/p/14622296.html