• 组合对象符号化小记


    卷不动题,随便摆一摆。

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

    笛卡尔积:

    \[\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)\]

  • 相关阅读:
    [转]浏览器退出之后php还会继续执行么?
    vim常用命令
    [转]自己写PHP扩展之创建一个类
    [转]用C/C++扩展PHP详解
    [转]PHP的执行流程,PHP扩展加载过程
    用扩展开发一个PHP类
    gcc
    Linux常用网络命令
    TCP-IP详解学习笔记1
    在Linux中调试段错误(core dumped)
  • 原文地址:https://www.cnblogs.com/xiaoziyao/p/16484675.html
Copyright © 2020-2023  润新知