Examples

组合对象符号化小记

卷不动题,随便摆一摆😭😭😭。

组合对象的大小函数对应生成函数的次数。

笛卡尔积:

\[\mathcal{C}=\mathcal{A}\times\mathcal{B}\\C(z)=A(z)\times B(z) \]

不交并:

\[\mathcal{A}=\mathcal{B}+\mathcal{C}=(\mathcal{E_1}\times\mathcal{B})\cup(\mathcal{E_2}\times C)\\C(z)=A(z)+B(z) \]

Sequence 构造:

\[\mathcal{B}=\operatorname{SEQ}(\mathcal{A})=\mathcal{E}+A+A^2+\cdots\\B(z)=\frac{1}{1-A(z)} \]

Cycle 构造:

\[\mathcal{B}=(\operatorname{SEQ}(\mathcal{A})-\mathcal{E})/S \]

根据 Burnside 引理我们计数置换下不动点的平均数:

\[B(z)=\sum_k\frac{1}{k}\sum_{i=0}^{k-1}A(z^{\frac{k}{\gcd(i,k)}})^{\gcd(i,k)} =\sum_k\frac{1}{k}\sum_{d\mid k}\varphi(d)A(z^d)^{\frac k d}\\ =\sum_d\frac{\varphi(d)}{d}\sum_{k}\frac{A(z^d)^k}{k} =\sum_d\frac{\varphi(d)}{d}\ln(\frac{1}{1-A(z^d)})\]

我们预先计算出 \(\ln(\frac{1}{1-A(x)})\),枚举 \(d\) 之后暴力累加 \(\lfloor\frac{n}{d}\rfloor\) 项点值即可。

Multiset 构造:

\[\mathcal{B}=\operatorname{SEQ}(\mathcal{A})/R\\ B(z)=\prod_{a\in A}\sum_k z^{|a|k}=\prod_{a\in A}\frac{1}{1-z^{|a|}} =\prod_i(\frac{1}{1-z^i})^{A_i}\\ =\exp(\ln(\prod_i(\frac{1}{1-z^i})^{A_i})) =\exp(\sum_iA_i\ln(\frac{1}{1-z^i}))\\ =\exp(\sum_iA_i\sum_{i\mid k}\frac{ix^k}{k}) =\exp(\sum_k\frac{\sum_kA_iix^{ik}}{ik})\\ =\exp(\sum_k\frac{A(z^k)}{k})\]

Powerset 构造:

Pointing 构造:(选代表元)

\[\mathcal{B}=\operatorname{PET}(\mathcal{A})\\ B(z)=\vartheta A(z)\]

posted @ 2022-07-16 17:10  xiaoziyao  阅读(95)  评论(0编辑  收藏  举报