线性基

线性基

概述

\(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维向量线性运算,也即异或。

构造

\[\forall {\bf{v_i}} \in B, {\bf{v_i}} \neq \sum_{j\neq i}x_j{\bf{v_j}} \]

由此我们可以联想到高斯消元,我们插入一个n维向量(数),如果当前位置有值且线性基中不存在当前位置有值的向量,则将其插入,否则将该位置消去(异或上线性基中相应位置),然后检查下一个位置。若插入向量为空则直接退出。

查询最大

贪心的从高位向低位遍历线性基。
若异或上当前的数能使结果更大,则异或,否则跳过。

posted @ 2021-04-06 16:05  鼠曲雪兔子  阅读(66)  评论(0编辑  收藏  举报