【学习笔记】零碎知识点记录

前言

想记录一下学了的东西,我金鱼记忆真是学啥忘啥。。。

干啥啥不行,喝奶茶第一名


线性基

\(1.\)原序列里面的任意一个数都可以由线性基里面的一些数异或得到

简单证明:

由线性基的构造得,\(x\) 在不断异或一些数后

如果二进制下不存在任何一位上为 \(1\),那么 \(x\) 就无法加入进线性基里了,即 \(x = p[i_1] \text{^} p[i_2] \text{^} ... \text{^} p[i_j]\)

如果此时 \(x\) 变成了 \(x'\),且 \(x'\) 符合加入线性基的条件,那么 \(x = p[i_1] \text{^} p[i_2] \text{^} ... \text{^} p[i_j] \text{^} x'\)

证毕
\(\\\)
\(2.\)线性基里面的任意一些数异或起来都不能得到 \(0\)

简单证明:

假设线性基中的 \(p_{i1} \text{^} p_{i2} \text{^} ... \text{^} p_{ij} = 0\)

即有\(p_{i1} \text{^} p_{i2} \text{^} ... \text{^} p_{i \ j-1} = p_{ij}\)

由线性基的构造得, \(p_{ij}\) 不可能被加入进线性基里

证毕
\(\\\)
\(3.\)线性基里面的数的个数唯一,并且在保持性质一的前提下,数的个数是最少的

简单证明:

先看个数能否增多

假设有 \(x, y\) 没有在线性基里,我们想从线性基里拿出一个数 \(z\),再把 \(x, y\) 放进去,尝试是否可行

\(S_x\)\(S_y\) 表示线性基中异或出 \(x\)\(y\) 的集合,那么 \(z\) 一定在 \(S_x\)\(S_y\) 中选,如果不是那么并不会对 \(x\)\(y\) 造成任何影响

如果 \(S_x \ \cap \ S_y = 0\),显然 \(x, y\) 不可能被同时放入

如果 \(S_x \ \cap \ S_y \ne 0\),那么 \(z\) 一定要在 \(S_x \ \cap \ S_y\) 中选(不在则同上)

\(k_1\)\(S_x\) 去掉 \(z\)\(k_2\)\(S_y\) 去掉 \(z\)

则有 \(k_1 \text{^} z = x\)\(k_2 \text{^} z = y\)

根据异或的性质,又有 \(k_1 \text{^} x = z\),带入进上面的式子则有 \(k_2 \text{^} k_1 \text{^} x = y\)

那么 \(y\) 还是不能加入进去,即个数无法增多

再看个数能否减少

假设我们想把 \(x\) 拿出来,那就要求 \(x = p_{i1} \text{^} p_{i2} \text{^} ... \text{^} p_{ij}\),但根据线性基的构造得,这样的 \(x\) 不可能被加入进去,即个数无法减少

\(emm\) 其实这个证明感觉还不是太严谨,但是网上也没找到什么,如果大家有想法可以和我一起讨论一下

猜你喜欢

转载自www.cnblogs.com/Bn_ff/p/12770486.html