線性基的學習+總結
參考部落格:線性基詳解
\(summary:\)
線性基四大性質
原序列裡面的任意乙個數都可以由線性基裡面的一些數異或得到線性基的構造:線性基裡面的任意一些數異或起來都不能得到 0
線性基裡面的數的個數唯一,並且在保持性質一的前提下,數的個數是最少的
乙個序列的線性基不唯一,只是元素數量唯一而已。
\(add\) 函式 ,將乙個數 \(x\) 插入線性基
void add(long long x) }}
}
如何求最大值
如何求在乙個序列中,取若干個數,使得它們的異或和最大。
首先構造出這個序列的線性基,然後從線性基的最高位開始,假如當前的答案異或線性基的這個元素可以變得更大,那麼就異或它,答案的初值為 \(0\)。
long long maxval()
如何求最小值
注意,這裡指的是用線性基內的元素能異或出的最小值。
顯然就是最小的 \(d[i]\) 了,因為最小的 \(d[i]\)無論異或誰都會變大。
如果是求整個序列能異或出的最小值
而不是這個序列的線性基能異或出的最小值的
話,要另外看一看有沒有元素不能插入線性基,如果有,那麼最小值就是 \(0\),否則依然是最小的 \(d[i]\)。
如何求第k小的值
從乙個序列中取任意個元素進行異或,求能異或出的所有數字中第 \(k\) 小的那個。
void work()//處理線性基,使得對於 d[x]一定是第x位為1,可以異或成的最小值
long long k_th(long long k)
}}
線性基學習筆記 模板總結
引入 一組線性無關的向量可以作為一組基底,用這個基底可以表示空間中的全部向量,而且這個基地的個數是確定的,他們線性無關,加入空間中的其他向量之後,就變得線性相關了。線性基 考慮這樣的線性基性質 模擬我們前面關於基的介紹 性質一 首先線性基是如何構造的呢?我們設有乙個陣列d,表示序列a的線性基,下標從...
線性基學習
除了xor b不存在異或為0的結果外,xor a和xor b可以說是相等的。結果是相同的,但壓縮了空間,除此外線性基還有很多比較方便的性質。到題目裡細講 講的不是很嚴謹,大意是這樣。更詳細可以看這裡 線性基模板以及講解然後開始刷題。1.bzoj2460 題意 給n塊石頭,石頭有兩個屬性標號id和魔法...
線性基學習
線性基是乙個數的集合,並且每個序列都擁有至少乙個線性基,取線性基中若干個數異或起來可以得到原序列中的任何乙個數。原序列裡面的任意乙個數都可以由線性基裡面的一些數異或得到 線性基裡面的任意一些數異或起來都不能得到 0 線性基裡面的數的個數唯一,並且在保持性質一的前提下,數的個數是最少的 線性基中每個元...