zoukankan      html  css  js  c++  java
  • 斯特林反演与伯恩赛德引理

    前言:组合数学真难

    真·前言:

    至少需要会分治 FFT/NTT 等操作,最好要会多项式全家桶。(不然你斯特林数都求不了

    二项式反演可以复习一下。

    斯特林数的系数会因为简便的写法有时候会非法,这个时候统统看作 \(0\),对答案不造成影响。

    草稿纸和笔必备,随时准备推式子。

    基础知识

    1. 组合式子扩展与组合恒等式:
    • \({n \choose m } = {n \choose n - m}\)
    • \({n \choose m} = {n - 1\choose m} + {n - 1 \choose m - 1}\)
    • \(\sum_{i =0} ^ n {n \choose i} = 2^n\) 其中奇数项之和等于偶数项之和 \((n \neq 0)\)
    • \(k\) 个非负整数的和为 \(n\) 的方案数: \(n + k - 1 \choose k - 1\)
    • 走格子到 (n,m) / 个数为 \(n\) 且单调不下降的序列最后一个数大小为 \(m\) 的方案数 : \(n + m \choose n\)
    • 上一条的扩展: \(\sum_{i = 0} ^ m {n + i \choose i} = {n+m+1\choose m}\) 特别的: \(\sum_{i = k}^m {i \choose k} = {m + 1 \choose m - k}\)
    • \({n\choose m} * {m\choose k} = {n \choose k}*{n - k \choose m - k}\)
    • \(\sum_{i = 0}^k {n\choose i}*{m \choose k - i} = {n + m\choose k}\)
    • \(n^{\underline{m}} = {n\choose m} * m!\)
    2. 斯特林数

    ​ 第一类斯特林数:即 \(n\) 个不同的数分成 \(m\) 个非空环排列的方案数,记作: \(\begin{bmatrix} n \\ m \end{bmatrix}\)

    ​ 递推公式:\(\begin{bmatrix} n \\ m \end{bmatrix} = \begin{bmatrix} n - 1 \\ m - 1 \end{bmatrix} + (n - 1) * \begin{bmatrix} n - 1 \\ m \end{bmatrix}\)

    ​ 第二类斯特林数:即 \(n\) 个不同的数分成 \(m\) 个非空集合的方案数,记作:\(\begin{Bmatrix} n \\ m \end{Bmatrix}\)

    ​ 递推公式:\(\begin{Bmatrix} n \\ m \end{Bmatrix} = \begin{Bmatrix} n - 1 \\ m - 1 \end{Bmatrix} + m *\begin{Bmatrix} n - 1 \\ m \end{Bmatrix}\)

    ​ 通项公式:\(\begin{Bmatrix} n \\ m \end{Bmatrix} = \frac {1}{m!} \sum_{i = 0}^m (-1)^i {m\choose i}(m - i)^n\)

    ​ 上升幂:\(n^{\overline{m}}\)

    ​ 下降幂:\(n^{\underline{m}}\)

    3. 自然数幂的处理:

    ​ 记 : \(S_k(n) = \sum_{i = 1} ^n i^k\)

    • 拉格朗日插值: \(y = \sum y_i\sum _{j \neq i} \frac{X-x_j}{x_i - x_j}\)
    • \(S_k(n) = \frac{(n + 1)^{\underline k + 1}}{k + 1} - \sum_{i = 0}^{k - 1} (-1)^{k - i}\begin{bmatrix} k \\ i \end{bmatrix} S_i(n)\)
    • 补:$n^{\underline m} = \sum_{i = 0}^m (-1)^{m - i}\begin{bmatrix} m \ i \end{bmatrix} n^i $
    • \(n^m = \sum_{i = 0}^{m}\begin{Bmatrix} m \\ i \end{Bmatrix} n^{\underline i}\)
    • \(n^{\overline m} = \sum_{i=0}^m\begin{bmatrix} m \\ i \end{bmatrix}n^i\)
    4. 第一/二类数的行与列求法:(至少要了解最常见的求法)

    之前已经可以 \(O(m)\)\(\begin{Bmatrix} n \\ m \end{Bmatrix}\) 单项。

    第二类斯特林数行:\(\begin{Bmatrix} n \\ i \end{Bmatrix}\)

    ​ 1. 直接看通项,卷就是了!

    ​ 2. 通常幂转下降幂 -> \(n^m = \sum_{i = 0}^{m}\begin{Bmatrix} m \\ i \end{Bmatrix} n^{\underline i}\) 进行二项式反演-> NTT

    第一类斯特林数行: \(\begin{bmatrix} n \\ i \end{bmatrix}\)

    ​ 构造 \(\prod_{i=1}^m (x+i-1)\) 使用分治 FFT (\(O(nlog^2n)\)) / 构造 \(g(n)=\prod_{i=1}^m(x+i-1+n)\) 倍增 \(O(nlogn)\)

    第二类斯特林数列:\(\begin{Bmatrix} i \\ m \end{Bmatrix}\)

    ​ 考虑 \(H_k(x) = \sum_{i = 0} \begin{Bmatrix} i \\ k \end{Bmatrix}x^i\) + 递推式

    \(H_k(x)=\prod\limits_{i=1}^k\dfrac{x}{1-ix}=x^k\left(\prod\limits_{i=1}^k(1-ix)\right)^{-1}\)

    ​ 求逆 + 倍增。

    第一类斯特林数列:\(\begin{bmatrix} i \\ m \end{bmatrix}\)

    \(F(x) = \frac{(−ln(1−x))^k}{k!}\)

    ​ 我不会!长大后再学习!

    image.png

    5. 斯特林反演:

    ​ 引理1:

    ​ $ x^{\underline{n}} = (-1)^n (-x)^{\overline n},x^{\overline{n}} = (-1)^n (-x)^{\underline n} $

    ​ 引理2:

    ​ $ \sum_{k = m}n(-1){n-k}\begin{bmatrix} n \ k\end{bmatrix}\begin{Bmatrix} k \ m \end{Bmatrix} = [m = n] $

    ​ $ \sum_{k = m}n(-1){n - k}\begin{Bmatrix} n \ k \end{Bmatrix}\begin{bmatrix} k \ m \end{bmatrix} = [m=n] $

    ​ 结论:

    ​ $ f(n) = \sum_{k=0}^n\begin{Bmatrix} n \ k \end{Bmatrix}g(k) \Leftrightarrow g(n) = \sum_{k = 0}n(-1){n - k}\begin{bmatrix} n \ k \end{bmatrix}f(k) $

    6. 你已经学会了斯特林反演了,试一试!
    • 例题:[2018雅礼集训1-16] 方阵

      提交地址:https://vjudge.net/problem/TopCoder-13444

      题意 : 给出一个 \(n\times m\) 的矩阵,每个位置可以填上 \([1,c]\) 中的任意整数。

      要求填好后任意两行互不等价,且任意两列互不等价。两行或两列等价当且仅当对应位置完全相同,求方案数。

      $n,m\leq 4000 $.

    • 题解:先考虑行满足的情况,设 \(g(m)\) 表示有 \(n\) 行互不相同,\(m\) 列的方案数。

      \(f(m)\) 表示有 \(n\) 行互不相同, \(m\) 列也互不相同的方案数。

      \(g(m) = (c^m)^{\underline n}\)\(g(m) = \sum_{i = 0}^m \begin{Bmatrix} m \\ i \end{Bmatrix}f(i)\)

      暴力计算就好力!!1

    • 例题: 我也不知道出处,欢迎 dalao 写完后造数据。

      **题意 **:给定 \(n\) 个节点的树,从某个点出发开始随机游走:在点 \(u\) 时,有 \(p_u\) 的概率留在原地,否则等概率的向相邻的点移动,直到移动到 \(1\) 号点停下。 求从每个点出发直至停下,所花费的时间的 \(k\) 次方的期望。

      $ n ≤ 10^5,k ≤ 10^5,n · k ≤ 10^6$。

    • 题解: 设随机变量 \(C_u\) 表示 \(u\) 点到 \(1\) 点的时间。尝试大力推式子。

      存在 \(k\) 次方,考虑通常幂 -> 下降幂。

      考虑拆解 \({C_u \choose i}\) ,有 \(C_u = p_u(C_u + 1) + \sum_v\frac{1 - p_u}{d_u}(C_v + 1)\)

      组合恒等式,然后再考虑变换式子。

      一个点由四周更新,考虑父亲节点值与当前节点值的差分。

      大力递推,最后再算一下第二类斯特林数行就好力!

    7. 烧边定理:

    ​ 谜语:设 \(G\) 是一个作用在集合 $X $上的有限群。对 \(g ∈ G\),设 \(X_g\) 表示 \(X\) 中 在 \(g\) 作用下的不动元素,则轨道数 \(|X/G|\) 满足: \(|X/G| = \frac 1 {|G|} \sum_{g∈G}|Xg|\)

    ​ 大概就是大力推式子吧。

    • 例题:AtCoder Regular Contest 062 F

      题意: 给出无向图 $ G = (V, E)$,对边染 $K $种颜色之一。 一个环上面的边旋转后得到的染色方案视为相同,求不同的染色方案数。

      \(1 ≤ N ≤ 50,1 ≤ M ≤ 100,1 ≤ K ≤ 100\)

      简单版本:求单独一个环上的方案数。

      题解

      ​ 主要是复合环上的不好考虑,官方题解给出了很好的一张图片。

      122212235427.png (271×198) (fzoi.top)

    8. 为勇者留下的题目

    CF932E Team Work (数据只有样例能人志士们快来造!

    【清华集训2016】如何优雅地求和

    HEOI2016/TJOI2016求和

    [国家集训队] Crash 的文明世界

    #6728. U 群把妹王

  • 相关阅读:
    iOS 表单 application/x-www-form-urlencoded
    iOS WebRTC
    静态库文件
    .crash 文件解析
    UIWebView转WKWebView,与前端交互的问题
    App Technical Support
    关于URL转义问题
    关于iOS架构相关的博客
    Mac Jenkins
    零碎知识点
  • 原文地址:https://www.cnblogs.com/jojojojojob/p/15725892.html
Copyright © 2011-2022 走看看