P2791 幼儿园篮球题
击你胎没。
题目所求即为
$$ \dfrac { \Large{\sum\limits_{i=0}^{\tiny{\min(k, m, L)}}}\normalsize{\dbinom{m}{i}\dbinom{n-m}{k-i}i^L} } { \dbinom{n}{k} } $$
下面分母非常简洁可以不看,尝试化简分子。形如 $i^L$ 的东西不好处理,看起来像一个第二类斯特林数的经典结论:
$$i^n=\sum_{j=0}^i\dbinom{i}{j}\begin{Bmatrix}{n}\\{j}\end{Bmatrix}j!$$
把它套进去。得到
$$\sum\limits_{i=0}^{\min(k, m, L)}\dbinom{m}{i}\dbinom{n-m}{k-i}\sum_{j=0}^i\dbinom{i}{j}\begin{Bmatrix}{L}\\{j}\end{Bmatrix}j!$$
把 $j$ 提到 $i$ 前面,由 $j\le i$ 得到 $i\ge j$。
$$\sum\limits_{j=0}^{\min(k, m, L)}\begin{Bmatrix}{L}\\{j}\end{Bmatrix}j!\sum_{i=j}^{\min(k, m, L)}\dbinom{m}{i}\dbinom{n-m}{k-i}\dbinom{i}{j}$$
同时我们有
$$ \begin{aligned} &\dbinom{m}{i}\dbinom{i}{j} \\ =&\dfrac{m!\ i!}{i!\ j!\ (m-i)! \ (i-j)!} \\ =&\dfrac{m!}{j!\ (m-i)! \ (i-j)!} \\ =&\dfrac{m!\ (m-j)!}{j!\ (m-i)! \ (i-j)!\ (m-j)!} \\ =&\dbinom{m}{j}\dbinom{m-j}{i-j} \end{aligned} $$
原式化为
$$ \begin{aligned} &\sum\limits_{j=0}^{\min(k, m, L)}\begin{Bmatrix}{L}\\{j}\end{Bmatrix}\dbinom{m}{j}j!\sum_{i=j}^{\min(k, m, L)}\dbinom{n-m}{k-i}\dbinom{m-j}{i-j}\\ =&\sum\limits_{j=0}^{\min(k, m, L)}\begin{Bmatrix}{L}\\{j}\end{Bmatrix}\dbinom{m}{j}j!\sum_{i=0}^{\min(k, m, L)}\dbinom{n-m}{k-i-j}\dbinom{m-j}{i}\\ \end{aligned} $$
后面是明显的范德蒙德卷积形式,即 $\dbinom{n-j}{k-j}$。于是关于 $i$ 的和式就被拆掉了。
$$\sum\limits_{j=0}^{\min(k, m, L)}\begin{Bmatrix}{L}\\{j}\end{Bmatrix}\dbinom{m}{j}\dbinom{n-j}{k-j}j!$$
这里的复杂度瓶颈在于第二类斯特林数的一个求,参考 P5395 第二类斯特林数·行 可以使用 NTT 在 $\Theta(N\log N)$ 预处理求出 $\begin{Bmatrix}{L}\\{j}\end{Bmatrix}(0\le j\le L)$。
总复杂度 $\Theta(N\log N+SL)$。
Code。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现