码迷,mamicode.com
首页 > 其他好文 > 详细

[联合省选 2020A]组合数问题 题解

时间:2021-02-20 12:30:43      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:dbi   text   直接   inline   href   isp   bin   lan   计算   

前言

这题算是我斯特林数的入门题,顺便安利大佬的博客,我是从这篇博客中学的斯特林数。

前置知识:

  • 二项式定理

    \[(a+b)^n=\sum_{i=0}^n{\dbinom ni a^ib^{n-i}}\tag1 \]

  • 斯特林数相关知识

    • 斯特林数定义

      • 第一类斯特林数: 第一类斯特林数 \(\begin{bmatrix}n\\m\end{bmatrix}\) 表示将 \(n\) 个不同元素划分为 \(m\) 个轮换的方案数。

      • 第二类斯特林数: 第二类斯特林数 \(\begin{Bmatrix}n\\m\end{Bmatrix}\) 表示把 \(n\) 个不同小球放入 \(m\) 个相同盒子,盒子不能空的方案数。

      • 相关递推式

        \[\begin{bmatrix}n\\m\end{bmatrix}=\begin{bmatrix}n-1\\m-1\end{bmatrix}+(n-1)\begin{bmatrix}n-1\\m\end{bmatrix}\tag2 \]

        \[\begin{Bmatrix}n\\m\end{Bmatrix}=\begin{Bmatrix}n-1\\m-1\end{Bmatrix}+m\begin{Bmatrix}n-1\\m\end{Bmatrix}\tag3 \]

  • 上升下降幂相关知识

    • 定义\(a^{\bar{b}}=\prod_{i=0}^{b-1}{(a+i)}\) 称为上升幂,\(a^{\underline{b}}=\prod_{i=0}^{b-1}{(a-i)}\) 称为下降幂,而 \(a^b\) 称为普通幂。

    • 普通幂与上升下降幂之间的转换

      \[x^n=\sum_{k=0}^n{\begin{Bmatrix}n\\k\end{Bmatrix}x^{\underline{k}}}\tag4 \]

      \[x^{\underline{n}}=\sum_{k=0}^n{(-1)^{n-k}\begin{bmatrix}n\\k\end{bmatrix}x^k}\tag5 \]

      \[x^n=\sum_{k=0}^n{(-1)^{n-k}\begin{Bmatrix}n\\k\end{Bmatrix}x^{\bar{k}}}\tag6 \]

      \[x^{\bar{k}}=\sum_{k=0}^n{\begin{bmatrix}n\\k\end{bmatrix}x^k}\tag7 \]

    • 下降幂与组合数之间的关系

      \[\dbinom nm m^{\underline{k}}=\dbinom {n-k}{m-k}n^{\underline{k}}\tag 8 \]

题解

\[\begin{aligned}\sum_{k=0}^n f(k) \times x^k \times \dbinom n k&=\sum_{k=0}^n{\left(\sum_{i=0}^m{a_ik^i} \right)x^k\dbinom nk}\texttt{$\big($由定义$\big)$}\\ & = \sum_{k=0}^n{\left(\sum_{i=0}^m{a_i\sum_{j=0}^i{\begin{Bmatrix}i\\j\end{Bmatrix}k^{\underline{j}}}} \right) x^k\dbinom nk}\texttt{$\big($由$\,(4)\big)$}\\&=\sum_{k=0}^n{\left(\sum_{j=0}^m{k^{\underline{j}}\sum_{i=0}^j{a_i\begin{Bmatrix}i\\j\end{Bmatrix}}} \right)x^k\dbinom nk}\texttt{$\big($交换求和顺序$\big)$}\\&=\sum_{j=0}^m{q_j}\sum_{k=j}^n{x^kk^{\underline{j}}\dbinom nk}\texttt{$\bigg($记$\,q_j=\sum_{i=0}^j{a_i}\begin{Bmatrix}i\\j\end{Bmatrix}\bigg)$}\\&=\sum_{j=0}^m{q_j\sum_{k=j}^n{x^k}n^{\underline{j}}\dbinom {n-j}{k-j}}\texttt{$\big($由$\,(8)\big)$}\\&=\sum_{j=0}^m{q_jx^{j}n^{\underline{j}}\sum_{k=0}^{n-j}{x^k\dbinom {n-j}{k}}}\texttt{$\big($提取公因式$\big)$}\\&=\sum_{j=0}^m{q_jx^jn^{\underline{j}}(x+1)^{n-j}}\texttt{$\big($由$(1)\big)$} \end{aligned} \]

显然 \(\{q_j\}\) 可以在 \(O(m^2)\) 的时间内预处理出来,剩下的直接套上面的式子就可以 \(O(m\log n)\) 计算。

时间复杂度为 \(O(m^2+m\log n)\),空间复杂度为 \(O(m^2)\)

[联合省选 2020A]组合数问题 题解

标签:dbi   text   直接   inline   href   isp   bin   lan   计算   

原文地址:https://www.cnblogs.com/peanuttang/p/14417964.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!