不妨最后再加上初始时的 r r r个宝石。
考虑某个人得到宝石个数的EGF,显然有 F ( x ) = ∑ i ≥ 0 i ! x i i ! = 1 1 − x F(x)=\sum_{i\geq 0}\frac{i!x^i}{i!}=\frac{1}{1-x} F(x)=∑i≥0i!i!xi=1−x1。那么总的分配数目为 d ! [ x d ] F n ( x ) = d ! ( n + d − 1 d ) d![x^d]F^n(x)=d!\binom{n+d-1}{d} d![xd]Fn(x)=d!(dn+d−1)。这里为了方便,后面都除去 d ! d! d!。
考虑组合意义,相当于每个人得到任意个数的宝石,总共分 d d d个(宝石间无序)。这样,令 f i , j f_{i,j} fi,j表示 i i i个人分 j j j个宝石的方案数(显然 f i , j = ( i + j − 1 j ) f_{i,j}=\binom{i+j-1}{j} fi,j=(ji+j−1)), g i , j g_{i,j} gi,j表示所有方案中前 r r r大之和,则答案即为 g n , d f n , d \frac{g_{n,d}}{f_{n,d}} fn,dgn,d。那么,枚举 i i i个人中至少有一个宝石的人的个数 k k k,有 g i , j = ∑ k ( i k ) ( g k , j − k + min ( r , k ) ⋅ f k , j − k ) g_{i,j}=\sum_{k}\binom{i}{k}(g_{k,j-k}+\min(r,k)\cdot f_{k,j-k}) gi,j=∑k(ki)(gk,j−k+min(r,k)⋅fk,j−k<
Codeforces gym 102482 D
![](https://img-home.csdnimg.cn/images/20240711042549.png)