線性基性質證明和應用

2022-02-27 07:43:26 字數 902 閱讀 3599

設當前要插入的數是 \(x\),線性基集合用 \(a_i\) 表示,則構造方法:

模版題:

插入**:

inline void insert(long long x)\) 可異或可不異或,\(a_j,(j>i)\) 不能異或

那麼一共能得出 \(2^i\) 個數;不過,這是 \(a_0\) 到 \(a_\) 都有數的情況,實際上應該是 \(2^m\),\(m\) 表示 \(a_0\) 到 \(a_\) 中有數的元素個數

考慮這 \(2^m\) 個數中的最小值,可以用類似於上面求最大值的方法求出,設個最小值是 \(w_m\)

那麼,如果要求 \(2^n+2^n\) 小的數,設 \(w_m,w_n\) 分別對應第 \(i,j\) 位(\(i>j\)),那麼就先讓 \(i\) 位為 \(1\),就是變成了求在此基礎上的第 \(2^n\) 小

那麼再讓 \(j\) 位為 \(1\),就是求此基礎上的最小了,那麼進而就可以知道 \(w_m \operatorname w_n\) 即為所求

由此,只要對 \(k\) 做二進位制拆分,答案就是若干個 \(w\) 異或起來

另外,由於線性基異或不出 \(0\),還要考慮一下原集合能不能異或出 \(0\) 的問題,**中用_0表示

**:顯然直接將其中乙個的數全部插入到另乙個中就行了

p3292 [scoi2016]幸運數字

倍增,設 \(base(i,u)\) 表示從 \(u\) 一直到它的 \(2^i\) 級祖先(不包括),的 \(2^i\) 個數構成的線性基

然後每次跳倍增陣列然後給線性基合併就可以了

空間 \(o(n\log n \log s)\),時間 \(o(n\log n\log ^2 s)\)

p4151 [wc2011]最大xor和路徑

別的題不太會寫,我好菜啊/kk

Prufer序列 性質 證明

下午hhy還有aak看到了這個 質問我prufer序列是啥 被迫複習一波 直接從題目看吧 hnoi2004 樹的計數 大概意思就是給你n個節點 告訴你每個節點的度數 然後問你根據這些度數能夠生成多少棵樹 看樣例4 2 1 2 1 畫個 釋一下 題目中給出的樣例只有這兩種情況,所以輸出答案為2 我們更...

傅利葉變換性質證明卷積 傅利葉變換的性質及基本應用

根據前文 rnderace 傅利葉變換,已經對傅利葉變換有了初步認識,這一次我們 一下傅利葉變換的性質以及一些基本的應用。傅利葉變換具有如下形式 這裡我之所以不使用 的記號,就是因為傅利葉變換的兩個條件 1.原函式定義在 上2.原函式要 絕對可積 為有限值,且 對於條件1,如果是以 作為記號,考慮其...

揹包問題貪心選擇性質證明

對於揹包問題可以用貪心演算法求解,作為01揹包的上界函式 下面證明揹包問題滿足貪心選擇性質 設有一按照單位價值排序好的最優解t tk,tn 第乙個裝入的物品是tk 若k 1則存在貪心性質出發的最優解 若k不等於1 如果物品k比物品1重,將k物品中物品1重量的部分卸下,換成物品1,構造新的解t 滿足容...