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

CodeForces 932E. Team Work

时间:2019-02-26 13:05:23      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:时间   sum   nbsp   href   子集   tin   结果   ORC   mat   

题目简述:从$n \leq 10^9$个人中选取一个非空子集$X$,求所有可能的子集大小的$k \leq 5000$次方$|X|^k$之和。

解:code

令$[n] = \{1, 2, 3, \dots, n \}$。因为$|\emptyset| = 0$,不影响结果。故即求

$$
\sum_{X \subseteq [n]} |X|^k
= \sum_{x=0}^n x^k \sum_{X \subseteq [n]} [|X|=x] = \sum_{x=0}^n \binom{n}{x} x^k.
$$

利用斯特林数的性质,我们有

$$ x^n = \sum_{k=0}^n k! \begin{Bmatrix} n \\ k \end{Bmatrix} \binom{x}{k}. $$

带入所求式得

$$
\begin{aligned}
\sum_{x=0}^n \binom{n}{x} i^k
& = \sum_{x=0}^n \binom{n}{x} \sum_{i=0}^k i! \begin{Bmatrix} k \\ i \end{Bmatrix} \binom{x}{i} \\
& = \sum_{i=0}^k \begin{Bmatrix} k \\ i \end{Bmatrix} \sum_{x=i}^n \frac {n!} {(n-x)! (x-i)!} \\
& = \sum_{i=0}^{\min\{k, n\}} \frac {n!} {(n-i)!} \begin{Bmatrix} k \\ i \end{Bmatrix} \sum_{x=i}^n \binom{n-i}{n-x} \\
& = \sum_{i=0}^{\min\{k, n\}} n^{\underline{i}} 2^{n-i} \begin{Bmatrix} k \\ i \end{Bmatrix} 
\end{aligned}
$$

在计算出第二类斯特林数之后,代入计算即可。时间复杂度为$O(k^2 \log n)$。

CodeForces 932E. Team Work

标签:时间   sum   nbsp   href   子集   tin   结果   ORC   mat   

原文地址:https://www.cnblogs.com/TinyWong/p/10436347.html

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