LOJ #3405. 「2020-2021 集训队作业」Gem Island 2

题意就是有\(n\)个人,\(d\)天。
初始每个人有一个宝石。然后每天选一颗宝石复制一份。
\(d\)天后,宝石数量前\(r\)大的人所拥有宝石数量总和的期望。
$1\le r\le n \le 1.5\times 10^7, 1 \le d \le 1.5\times 10^7 $

首先考虑弱化版,\(O(n^3)\)的做法。
这需要一个转换:考虑一个最终状态\(a_1,a_2 \dots a_n\)\(a_i\)表示这\(d\)天第\(i\)个人复制出来的宝石。
计算它出现的次数为\(\binom{d}{a_i} \times \prod a_i!\)
发现就是\(d!\)。那么所有\(a\)的概率都一样。
那么问题转换为计数\(a\)的个数(这个值就是\(\binom{d+n-1}{n-1}\)),并计算所有\(a\)中前\(r\)大的钻石数量。
这个可以用一个\(\text{DP}\)完成。
就是设\(f[i][j]\)表示有\(j\)个人为当前宝石数量并列最多,已经过了\(i\)天,在这个状态下的方案数。

下面考虑优化。用式子去表达答案。
就是\(\sum\limits_{i=1}^{n} \min(i,r) \sum\limits_{j=1}^{d} F_{i,j}\)
\(F_{i,j}\)表示恰好有\(i\)个人至少有\(j\)个钻石。
这个\(F\)显然可以用二项式反演。
\(G_{i,j}\)表示至少有\(i\)个人至少有\(j\)个钻石。
那么\(G_{i,j}=\binom{n}{i}\binom{d-i*j+n-1}{n-1}\)
反演得\(F_{i,j}=\sum\limits_{k=i}^{n} (-1)^{k-i}\binom{k}{i}G_{k,j}\)
\(G,F\)都带入到原式可得:
$\sum\limits_{i=1}^{n} \min(i,r) \sum\limits_{j=1}^{d} \sum\limits_{k=i}^{n} (-1)^{k-i}\binom{k}{i} \binom{n}{k}\binom{d-k*j+n-1}{n-1} $

整理可变成\(\sum\limits_{k=1}^{n} \binom{n}{k} \sum\limits_{i=1}^{k} (-1)^{k-i} \min(i,r) \binom{k}{i} \sum\limits_{j=1}^{d}\binom{d-k*j+n-1}{n-1}\)

考虑设\(Q_i\)表示\(\sum\limits_{i|j}^{d}\binom{d-j+n-1}{n-1}\)
\(P_i\)表示\(\sum\limits_{j=1}^{i} (-1)^{i-j} \min(j,r) \binom{i}{j}\)

原始就变成了\(\sum\limits_{k=1}^{n} \binom{n}{k} P_k Q_k\)
显然\(Q\)是可以用高维前缀和\(O(n\log\log n)\)解决的。
注意:这里可以发现\(Q\)与原始不同,多了\(j=0\)情况。意义上就是把初始钻石也加上了。所以就不用在最后加\(n\)了。

然后瓶颈在于处理\(P\)
仍然考虑推式:
\(\sum\limits_{j=1}^{i} (-1)^{i-j} \min(j,r) \binom{i}{j}\)
\(\sum\limits_{l=1}^{r}\sum\limits_{j=l}^{i} (-1)^{i-j} \binom{i}{j}\)
\(\sum\limits_{i=0}^{n}(-1)^i\binom{n}{i}=0\)可推得。
\(-(-1)^i\sum\limits_{l=1}^{r}\sum\limits_{j=0}^{l-1} (-1)^{j} \binom{i}{j}\)
类推上面等式,玩杨辉三角可推得
\((-1)^i\sum\limits_{l=1}^{r}(-1)^l\binom{i-1}{l-1}\)
\(-(-1)^i\sum\limits_{l=0}^{r-1}(-1)^{l}\binom{i-1}{l}\)
\((-1)^{i+r}\binom{i-2}{r-1}\)
所以\(P_i=(-1)^{i+r}\binom{i-2}{r-1}\)。预处理组合数后\(O(1)\)计算。
所以最大复杂度就是处理\(Q\)\(m\log\log m\),其他都是线性。

posted @ 2022-11-04 23:12  sjcx  阅读(127)  评论(2编辑  收藏  举报