集合冪級數雜題


CF582E Boolean Function

四元組 \((A,B,C,D)\) 的情況只有 \(16\) 種,將每種情況的函數值進行狀壓,在表達式建出的二叉樹上進行 \(DP\),合並子樹為對應的卷積。

鏈接

CF449D Jzzhu and Numbers

先做集合交卷積的莫比烏斯變換,然后快速冪計算選出非空子集的方案數,然后再莫比烏斯反演回去即可。本質為高維前綴和。

鏈接

CF1392G Omkar and Pies

設兩個串分別為 \(s,t\),每個操作,也就是置換(對換)為 \(f_i\),定義置換的左作用 \(\cdot\),得答案為:

\[\large k - d \left( \left( f_r \circ f_{r-1} \circ \cdots \circ f_{l+1} \circ f_l \right) \cdot s, t \right) \]

其中 \(d(s,t)\) 表示 \(s,t\) 的漢明距離,即為對應位不同字符個數,進一步得:

\[\large\begin{aligned} &d \left( \left( f_r \circ f_{r-1} \circ \cdots \circ f_{l+1} \circ f_l \right) \cdot s, t \right)\\ =& d \left( s, \left( f_r \circ f_{r-1} \circ \cdots \circ f_{l+1} \circ f_l \right)^{-1} \cdot t \right) \\ =& d \left( s, \left( f_l^{-1} \circ f_{l+1}^{-1} \circ \cdots \circ f_{r-1}^{-1} \circ f_r^{-1} \right) \cdot t \right) \\ =& d \left( \left( f_1^{-1} \circ f_2^{-1} \circ \cdots \circ f_{l-1}^{-1} \right) \cdot s, \left( f_1^{-1} \circ f_2^{-1} \circ \cdots \circ f_r^{-1} \right) \cdot t \right) \end{aligned} \]

\(s_i=\left( f_1^{-1} \circ f_2^{-1} \circ \cdots \circ f_i^{-1} \right) \cdot s,t_i=\left( f_1^{-1} \circ f_2^{-1} \circ \cdots \circ f_i^{-1} \right) \cdot t\),問題就轉化為求:

\[\large \min_{j-i\geqslant m}d(s_i,t_j) \]

因為 \(d(s,t)=|S \oplus T|=|S|+|T|-2|S \cap T|\),所以就是最大化 \(|S \cap T|\),枚舉交集 \(I\),對於 \(j-i\geqslant m\) 的限制,就是求得最小的 \(i\),使得 \(I \subseteq S_i\),最大的 \(j\),使得 \(I \subseteq T_j\)。這里是子集的最大最小值,用莫比烏斯變換預處理即可。

鏈接

[HAOI2015] 按位或

\(\min-\max\) 容斥,轉為求 \(E(\min(S))\)\(\min(S)\) 為集合 \(S\) 中出現第一個元素的時間,得:

\[\large\begin{aligned} E(\min(S))&=\sum_{i=1}^\infty iP(\min(S)=i)\\ &=\sum_{i=1}^\infty i(\sum_{S \cap T=\varnothing}p_T)^{i-1}(1-\sum_{S \cap T=\varnothing}p_T)\\ &=\sum_{i=1}^\infty i(\sum_{S \cap T=\varnothing}p_T)^{i-1}-i(\sum_{S \cap T=\varnothing}p_T)^i\\ \end{aligned} \]

即求形如 \(\sum\limits_{i=1}^\infty ip^i\) 的式子,應用擾動法得:

\[\large\begin{aligned} &\sum_{i=1}^\infty ip^i\\ =&\sum_{i=0}^\infty (i+1)p^{i+1}\\ =&p\sum_{i=1}^\infty ip^i+\sum_{i=0}^\infty p^{i+1}\\ \end{aligned} \]

\(\sum\limits_{i=1}^\infty ip^i=\frac{p}{(1-p)^2}\),代入得:

\[\large E(\min(S))=\frac{1}{1-\sum\limits_{S \cap T=\varnothing}p_T} \]

莫比烏斯變換求子集和即可。

還有一種解法:

\(p\) 看作集合冪級數,應用集合並卷積,得期望時間為:

\[\large f=\sum_{i=1}^\infty i(p^i-p^{i-1}) \]

這個集合冪級數全集的那一項,莫比烏斯變換得:

\[\large \large \hat f_S=\sum_{i=1}^\infty i(\hat p^i_S-\hat p^{i-1}_S) \]

應用剛才的推導不難得:

\[\large \hat f_S = \begin{cases} \frac{1}{\hat p_S-1} & \hat p_S < 1 \\ 0 & \hat p_S = 1 \\ \end{cases} \]

然后再莫比烏斯反演即可。

鏈接

[NOI Online #3 提高組] 優秀子序列

所求即為選出兩兩按位與為 \(0\) 的集合,求集合權值和為 \(s\) 的方案數。

選出兩兩按位與為 \(0\) 的集合其實就是子集卷積,然后 \(\exp\) 即可求集合權值和為 \(s\) 的方案數。

鏈接

[CEOI2019] Amusement Park

發現對於任何一種 \(DAG\) 的方案,將所有邊進行翻轉后仍為 \(DAG\),設 \(f_S\) 為集合 \(S\) 中的點構成的導出子圖為 \(DAG\) 的方案數,答案即為 \(\frac{1}{2}mf_U\)

\(a_S\) 表示 \(S\) 集合是否為獨立集,其取值為 \(0\)\(1\),用莫比烏斯變換求子集和即可計算 \(a_S\)。發現直接做會算重,需要容斥:

\[\large f_S=\sum_{T \subseteq S}(-1)^{|T|-1}a_Tf_{S-T} \]

考慮怎么得到的容斥系數,設容斥系數為 \(f(i)\),發現 \(f(i)=(-1)^{i-1}\) 恰好滿足要求,得:

\[\large\begin{aligned} &\sum_{i=1}^n\binom{n}{i}f(i)\\ =&\sum_{i=1}^n\binom{n}{i}(-1)^{i-1}\\ =&-\left(\sum_{i=0}^n\binom{n}{i}(-1)^i-\binom{n}{0}(-1)^0\right)\\ =&1 \end{aligned} \]

\(g_S=\sum\limits_{T \subseteq S}(-1)^{|T|-1}a_T\),將乘法定義為子集卷積,得:

\[\large\begin{aligned} f&=fg+1\\ f&=\frac{1}{1-g} \end{aligned} \]

求逆即可。

鏈接

集合划分計數

定義乘法為子集卷積,所求即為:

\[\large g=\exp\limits_{\leqslant k}f=\sum_{i=0}^k\frac{f^i}{i!} \]

直接做是 \(O(n^32^n)\) 的,根據 \({g}'={f}'(g-\frac{f^k}{k!})\) 做,就是 \(O(n^22^n)\) 了。

鏈接

[JOI 2018 Final] 毒蛇越獄

設詢問中 \(0,1,?\) 的個數分別為 \(c_0,c_1,c_2\)。直接的暴力就是枚舉 \(?\) 的情況,復雜度為 \(O(q2^{c_2})\)。若不存在 \(1\),將 \(?\) 看作 \(1\),計算子集和即可,若有 \(1\),進行容斥,復雜度為 \(O(q2^{c_1})\)。若不存在 \(0\),將 \(?\) 看作 \(0\),計算超集和即可,若有 \(0\),進行容斥,復雜度為 \(O(q2^{c_0})\)。根據 \(c_0,c_1,c_2\) 的大小選擇做法,得復雜度為 \(O(n2^n+q2^{\left\lfloor\frac{n}{3}\right\rfloor})\)

鏈接

[AGC034F] RNG and XOR

正難則反,設初始狀態為 \(i\),目標狀態為 \(0\),期望次數為 \(E_i\),其中 \(E_0=0\)\(p_i=\frac{a_i}{\sum\limits_j a_j}\),得:

\[\large E_i=1+\sum_{j=0}^{2^n-1}p_jE_{i \oplus j}\quad \left( n \neq 0 \right) \]

發現其為集合對稱差卷積,構造集合冪級數,設:

\[\large E(x)=\sum_{i=0}^{2^n-1}E_ix^i,P(x)=\sum_{i=0}^{2^n-1}p_ix^i,I=\sum_{i=0}^{2^n-1}x^i \]

根據轉移有:

\[\large E(x)=I+E(x)P(x)+cx^{\varnothing} \]

最后一項是為了滿足 \(n=0\) 時的情況,進行 \(FWT\) 得:

\[\large\begin{aligned} \hat E(x)&=2^nx^{\varnothing}+\hat E(x)\hat P(x)+cI\\ \hat E(x)(I-\hat P(x))&=2^nx^{\varnothing}+cI\\ \left[x^\varnothing\right]\hat E(x)(1-[x^\varnothing]\hat P(x))&=2^n+c\\ \left[x^\varnothing\right]\hat E(x)\left(1-\sum_{i=0}^{2^n-1}p_i\right)&=2^n+c\\ \end{aligned} \]

等號左邊的項為 \(0\),得 \(c=-2^n\),代入后提取第 \(x^S\ \left( S \neq \varnothing \right)\) 項系數得:

\[\large\begin{aligned} \hat E(x)\left(\hat P(x)-I\right)&=2^n(I-x^{\varnothing})\\ \left[x^S\right]\hat E(x)\left(\left[x^S\right]\hat P(x)-1\right)&=2^n\\ \end{aligned} \]

不難發現 \(\left[x^S\right]\hat P(x) \neq 1\),得:

\[\large \left[x^S\right]\hat E(x)=\frac{2^n}{\left[x^S\right]\hat P(x)-1} \]

\(IFWT\) 后提取第 \(x^\varnothing\) 項系數得,:

\[\large \sum_{i=0}^{2^n-1}\left[x^i\right]\hat E(x)=2^nE_0=0 \]

然后就能解出 \(\left[x^\varnothing\right]\hat E(x)\) 了,求出 \(\hat E(x)\)\(IFWT\) 即可。

鏈接

CF1119H Triple

由題意得到 \(n\) 個集合冪級數,其中 \(f_i\) 滿足 \(f_{i,a_i}=x,f_{i,b_i}=y,f_{i,c_i}=z\)。將 \(n\) 個冪級數進行異或卷積即可得到答案,但直接卷積復雜度無法接受。

發現每個冪級數都只有三個非零項,對其進行 \(FWT\) 得:

\[\large \hat f_{i,S}=\sum_{T\subseteq 2^U}(-1)^{|S \cap T|}f_{i,T}=(-1)^{|S \cap a_i|}x+(-1)^{|S \cap b_i|}y+(-1)^{|S \cap c_i|}z \]

設最后所求的冪級數為 \(f\),得:

\[\large \hat f_S=\prod_{i=1}^n\hat f_{i,S}=\prod_{i=1}^n(-1)^{|S \cap a_i|}x+(-1)^{|S \cap b_i|}y+(-1)^{|S \cap c_i|}z \]

為簡化問題,將三元組 \(\{ a_i,b_i,c_i \}\) 轉化為 \(\{ 0,b_i \text{xor} a_i,c_i \text{xor} a_i \}\),最后統計答案時,將冪級數對應的下標異或上 \(\text{xor}_{i=1}^n a_i\) 即可。這樣的話,\((-1)^{|S \cap a_i|}x+(-1)^{|S \cap b_i|}y+(-1)^{|S \cap c_i|}z\) 就只有四種可能的取值了:

\[\large x+y+z, x+y-z, x-y+z, x-y-z \]

求出每種出現次數,快速冪就能求出 \(\hat f_S\) 了。設每種出現次數分別為 \(c_1,c_2,c_3,c_4\)。顯然有 \(c_1+c_2+c_3+c_4=n\)

考慮三個冪級數 \(g_1,g_2,g_3\),其分別滿足:

\[\large g_{1,S}=\sum_{i=1}^n[b_i=S],g_{2,S}=\sum_{i=1}^n[c_i=S],g_{3,S}=\sum_{i=1}^n[b_i\text{xor}c_i=S] \]

對其進行 \(FWT\),不難發現:

\[\large \hat{g}_{1,S}=c_1+c_2-c_3-c_4, \hat{g}_{2,S}=c_1-c_2+c_3-c_4, \hat{g}_{3,S}=c_1-c_2-c_3+c_4 \]

根據方程解出 \(c_1,c_2,c_3,c_4\) 即可。

鏈接

CF772D Varying Kibibits

發現 \(f\) 這個函數的按位取 \(\min\),其實就是十進制下的按位與,那么先做十進制的莫比烏斯變換,計算超集和。考慮如何統計答案,現在要計算的即為:

\[\large \sum_{T \subseteq S}\left( \sum_{i \in T} a_i\right)^2 \]

也就是集合中所有子集的和的平方,考慮兩個元素 \(i,j\) 的貢獻,不難得:

\[\large\begin{aligned} &\sum_{T \subseteq S}\left( \sum_{i \in T} a_i\right)^2\\ =&2^{|S|-2}\sum_{i \in S}\sum_{j \in S \and i \neq j}a_i a_j+2^{|S|-1}\sum_{i \in S} a_i^2\\ =&2^{|S|-2}\sum_{i \in S}\sum_{j \in S \and i \neq j}a_i a_j+2^{|S|-2}\sum_{i \in S} a_i^2+2^{|S|-2}\sum_{i \in S} a_i^2\\ =&2^{|S|-2}\left( \sum_{i \in S} a_i\right)^2+2^{|S|-2}\sum_{i \in S} a_i^2\\ \end{aligned} \]

莫比烏斯變換處理出 \(|S|,\sum_\limits{i \in S} a_i,\sum\limits_{i \in S} a_i^2\) 后即可計算,然后再莫比烏斯反演就為答案。

鏈接

[ZJOI2019] 開關

\([AGC034F] RNG\ and\ XOR\) 一樣,設集合冪級數 \(E(x),P(x)\),由那題得 \(\left[x^S\right]\hat E(x)=\frac{2^n}{\left[x^S\right]\hat P(x)-1}\),根據本題的性質進一步推導:

\[\large\begin{aligned} &\left[x^S\right]\hat E(x)\\ =&\frac{2^n}{\left[x^S\right]\hat P(x)-1}\\ =&\frac{2^n}{\sum\limits_{i=1}^n(-1)^{|S \cap \{ i\}|}p_i-1}\\ =&\frac{-2^n}{2\sum\limits_{i\in S}p_i}\\ \end{aligned} \]

得答案為:

\[\large\begin{aligned} &\frac{1}{2^n}\sum_T(-1)^{|S \cap T|}\left[x^T\right]\hat E(x)\\ =&\frac{1}{2^n}\left(\sum_{T\neq \varnothing}(-1)^{|S \cap T|}\left[x^T\right]\hat E(x)+\left[x^\varnothing\right]\hat E(x)\right)\\ =&\frac{1}{2^n}\left(\sum_{T\neq \varnothing}(-1)^{|S \cap T|}\frac{-2^n}{2\sum\limits_{i\in T}p_i}+\sum_{T\neq \varnothing}\frac{2^n}{2\sum\limits_{i\in T}p_i}\right)\\ =&\sum_{T\neq \varnothing}\frac{(-1)^{|S \cap T|+1}+1}{2\sum\limits_{i\in T}p_i}\\ =&\sum_T\frac{\left[ |S \cap T| \equiv 1 \pmod{2} \right]}{\sum\limits_{i\in T}p_i}\\ \end{aligned} \]

發現 \(\sum\limits_{i=1}^n p_i\) 很小,對其做背包計數即可計算答案,背包過程需記錄 \(|S \cap T|\) 的奇偶性。

鏈接

[PKUWC2018] 隨機游走

\(\min-\max\) 容斥,轉為求 \(E(\min(S))\),即從根到點集 \(S\) 中第一個點的期望步數。

枚舉當前考慮的點集 \(S\),設 \(f_x\)\(x\) 到點集 \(S\) 中第一個點的期望步數,\(d_x\)\(x\) 的度數,若 \(x\in S\),則有 \(f_x=0\),否則有:

\[\large f_x=1+\frac{1}{d_x}\sum_{i=1}^{d_x} f_{y_i} \]

直接高斯消元是 \(O(n^3)\) 的,有一個樹上消元的技巧能快速計算,將每個點的 \(DP\) 值用其父親的 \(DP\) 值表示,即:

\[\large f_x=k_xf_{fa}+b_x \]

得:

\[\large\begin{aligned} f_x&=1+\frac{1}{d_x}\sum_{i=1}^{d_x} f_{y_i}\\ &=1+\frac{1}{d_x}\left( \sum_{y\in son}k_yf_x+b_y+f_{fa} \right)\\ &=\frac{\frac{1}{d_x}f_{fa}+\frac{1}{d_x}\sum\limits_{y\in son}b_y+1}{1-\frac{1}{d_x}\sum\limits_{y\in son}k_y} \\ \end{aligned} \]

計算出每個點集的期望步數后,用莫比烏斯反演求子集和即可快速回答詢問。

鏈接

[SNOI2017] 遺失的答案

\(n,l,x\) 都除以 \(g\),問題轉化為在 \(\left[1,n\right]\) 中選數,必須選 \(x\),求選出的數 \(\gcd\)\(1\)\(\text{lcm}\)\(l\) 的方案數。

發現 \(l\) 最多有 \(8\) 個質因子,考慮狀壓。\(\left[1,n\right]\) 中每個數對應的狀態為: 該數中 \(l\) 的每個質因子的指數是否為 \(0\),每個質因子的指數是否和 \(l\) 一樣。選一個數就是狀態按位或。

發現很多數狀態一樣,放到一起來考慮,並且只需考慮 \(l\) 的約數,發現有用的狀態種數為 \(600\) 左右。維護前綴的 \(DP\) 值和后綴的 \(DP\) 值,就能計算強制選一個數方案數了,前綴后綴合並時為集合並卷積。

鏈接


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM