ABC220H - Security Camera
阿新 • • 發佈:2021-10-03
基礎 FWT 練習題
到右部集合 \(T\) 的邊數奇偶性,那麼 \(S, T\) 合併合法當且僅當:
\[f_S \oplus E_{S, T} \oplus g_T = 0
\] 計算答案。
考慮折半,將點按照標號是否 \(\le \frac{n}{2}\) 分成兩個集合 \(S_1, S_2\)。
首先原問題的形式有點奇怪,我們不妨統計沒有被覆蓋覆蓋的邊為偶數條的情況。
這樣一來問題轉化為白點 匯出子圖 的邊數為偶數的情況,這與原問題等價。
考慮 \(S_1, S_2\) 中怎樣的兩個集合合併是合法的,形式化地,有:
令 \(f_S(S \subseteq S_1)\) 為 \(S\) 這個集合匯出子圖邊數的奇偶性,類似地定義 \(g_T(T \subseteq S_2)\),同時令 \(E_{S, T}(S \subseteq S_1, T \subseteq S_2)\) 為左部集合 \(S\)
直接這樣判定很沒有前途,因為 \(E\) 的總量已經達到了 \(2 ^ n\) 級別,因此考慮轉移判定方式。
令 \(p_S(S \subseteq S_1)\) 為 \(S_2\) 中與 \(S\) 連邊為奇數的點構成的點集,那麼判定條件可以改寫為:
\[f_S \oplus ((p_S \& T) \& 1) \oplus g_T = 0 \]注意到中間部分很特殊,於是我們考慮固定中間部分,統計:
\[h_Q = \sum\limits_{p_S \& T = Q} f_S \oplus g_T \]即可 \(\mathcal{O}(2 ^ {n / 2})\)
注意到上式形式與與卷積非常類似,考慮將其轉化為與卷積的形式。
列舉 \(f_S = pf, g_T = pg\),令 \(vf_Q = \sum\limits_{p_S = Q} [f_S = pf], vg_Q = [g_Q = pg]\),那麼有 \(f_S = pf, g_T = pg\) 時對 \(h\) 的貢獻:
\[h_Q = \sum\limits_{S \& T = Q} vf_S \times vg_T \]直接做與卷積即可,複雜度 \(\mathcal{O}(n2 ^ {n / 2})\)。
GO!