https://www.luogu.com.cn/blog/command-block/xian-xing-ji-xiao-ji
显然一个矩阵的秩是一定的,于是在一个张成空间中,显然基向量的个数都等于空间维度。根据该性质,对每个向量有价值的时候,你可以按需排序,确保最终基向量集合的总价值取到最值。
不妨考虑我们在做高斯消元的过程,我们要把它变成上三角矩阵,倘若在这过程中出现一行全为 \(0\),显然该行向量可由其他非 \(0\) 行向量线性组合表示而来,于是该矩阵不满秩。
然后线性基是利用异或的性质加速了这个高斯消元的过程,考虑高斯消元中枚举主元消掉当前要插入的向量,因为异或是 \(\mod 2\) 下的加法,显然倘若当前该数该位为 \(1\),直接将其与当前钦定主元向量异或即可。那么你会发现,我们尽量满足一个与当前向量集合线性无关的向量插入完该矩阵还是上三角矩阵,于是我们直接在插入的过程中模拟消元即可。
接下来,考虑插入完后,显然把其搞成对角线。至于正确性?显然异或满足结合律,交换律以及偶数个相同的数可以抵消,也就是说一个数在最终的式子中至多出现一次。