線性基學習筆記及其相關證明

2022-04-30 04:24:07 字數 1896 閱讀 9064

線性空間

線性基性質

線性基是特殊線性空間中的一組基底,具有以下特殊性質:

0:若\(d_i > 0\),則\(d_i\)二進位制下第\(i+1\)位為\(1\)且\(i+1\)位為最高位。

1:元素線性無關,即異或和非0

證明:前者為線性無關,後者為異或路徑上的元素及插入點構成成\(a_i\)

3:選取一些元素構成集合\(s\),其異或和\(x\)代替\(s\)中任意元素後新\(s\)和其他線性基中的元素張成的空間不變。

證明:考慮\(t\subset s,t\neq \empty,\bigoplus_^d_i=x\)時,對於\(\forall i,d_i\in t\)有\(\bigoplus_^d_j\bigoplus_^\oplus x=d_i\),易得其等價。

4:線性基中數的個數唯一,且最少。

證明:對於乙個不能插入的原序列數\(x,(t\subset s,x=\bigoplus_^d_i)\)和線性基\(s\),交換滿足\(\forall i,i\in t\)的\(d_i\)與\(x\),性質在任意時刻仍然成立。

構造假設已經擁有乙個線性基,想要插入乙個數\(x\)

從高位往低位考慮,如果\(x\)的第\(j\)位為\(1\)且\(d_i>0\)那麼\(x=x\oplus d_i\),即消掉與\(d_i\)相同的位且對其他\(i\)位取反。

異或保證了線性無關,明顯若中途為\(0\),則線性相關,停止插入。

如果\(d_i=0\)且\(x\)的\(i+1\)位為\(1\),則插入到\(d_i\)中

明顯對於\(j>i,d_j>0\)的\(d_j\)的第\(i+1\)位亦可能為\(1\),但一定有\(j+1\)位為\(1\),因此插入後滿足線性無關。

**

void insert(ll x)  else x ^= d[i];

} else if (!x) return;

}}

應用

1:最大最小異或和。

sol:\(d_i\)的最高位為\(i+1\)位,直接貪心即可

2:\(k\)小異或和。

sol:考慮構造新線性基,保證對於\(\forall i, d_i>0\)時,僅\(d_i\)的\(i+1\)位為\(1\)。

正確性:對於\(\forall i, d_i>0\)的 \(d_i\),若第\(\forall j, j\in[i-1,0]\)位\(>0\)且\(d_=0\),那麼僅可能存在

\(\forall k,k\in[i-1,j+1]\)的\(d_k(d_k>0)\)使得\(d_k\)的第\(j\)為\(1\),能夠消去\(d_i\)的第\(j\)位,但此時若\(d_i\)的\(k+1\)位為\(0\)

明顯\(d_i\)將在異或後變大,即不符合變小的約定。

若\(d_i\)的\(k+1\)位為\(1\),則符合約定,因此構造滿足上述性質的線性基一定會使得獨立時能異或出\(k\)小。

\(k\)小異或和構造方法

對於每乙個\(d_i\)考慮其\(1\)至\(i\)位,若\(d_i\)的\(j\)位為\(1\),將其異或上\(d_\)即可構造出目標線性基。

正確性:考慮前\(i-1\)位已經構造出來了,構造第\(i\)位的時候也一定合法

這啟發我們對於一組數插入的順序影響基底,但是不影響其張成的空間,這也對應著性質4

void kth()
實數線性基

實數線性基,和普通線性基區別不大,注意判eps,和異或線性基相似的地方是每個向量有m維

實際上就是m位的異或線性基,異或改成加減就好。

const ld eps = 1e-8;

int vis[n], n, m;

ld px[n][n];

inline int ins(ld *res) else

}}

線性基學習筆記

線性基是幹嘛的呢?給定n個數,求所有數的異或和最大是多少?求解這類問題的時候,就需要線性基了 個人感覺線性基本身就一種貪心。首先定義ba se i bas e i 表示最高位1在i位的數是什麼 對於新進來的數tm p tmp 我們先找出他最高位上的1,假設為第 j j 位,然後看一下ba se j ...

線性基 學習筆記

includeusing namespace std using ll long long const int maxn 5e5 5 原來的數 const int maxbit 63 ll a maxn 原來的數 ll p maxbit p j 第j位為最高位1的數 最高位1在第j位的數 int m...

線性基 學習筆記

按位計算,如果相同記為0,不同記為1。如果,a b c,c b a 交換律結合律 對於任何數,x x 0,x 0 x 對 於一 段序列a n,異或 和為a1 a2 an 對於一段序列a n,異或和為a 1 a 2 a n 對於一段序列 an 異或和為 a1 a2 an 設t s,所有 這樣的子 集t...