斯特林反演与伯恩赛德引理

前言:组合数学真难

真·前言:

至少需要会分治 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)\begin{bmatrix} n \ k\end{bmatrix}\begin{Bmatrix} k \ m \end{Bmatrix} = [m = n] $

​ $ \sum_{k = m}n(-1)\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)\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 群把妹王

posted @ 2021-12-24 08:33  jojojojojob  阅读(140)  评论(3编辑  收藏  举报