1 条题解
-
0
自动搬运
来自洛谷,原作者为

鏡音リン
希望大家都能成为自己想要的样子呐搬运于
2025-08-24 22:17:43,当前版本为作者最后更新于2020-02-25 09:54:02,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
2021/06/29 更新:添加了详细的推式子过程,以及修改了排版。
如果有人问我推过最恶心的式子是哪个,我会说是这题。
我就不打表找规律,推式子警告
我们设 表示有 个人的情况下,第 小的红包钱数大于 的概率。这也等价于至少 个红包的钱数大于 的概率。这里推荐使用第二种定义,方便理解后面的递推边界。
那么,容易看出我们要求的答案 。
考虑 的递推式, 个人时生成了 个随机数,设这些随机数里最小的那个是 。此时一定有一个金额为 的红包,讨论 和 的大小关系:
如果 ,那么剩下 个红包里就需要 个红包大于 ;
如果 ,那么剩下 个红包里就需要 个红包大于 。
再想想,“ 块钱分成 个红包有 个红包大于 ”和“ 块钱分成 个红包有 个红包大于 ”是一样的,可以理解为通货膨胀了(?)
还有一个问题,虽然随机数是均匀分布的,但 个随机数中的最小值 可不是均匀分布的。我们要求出这个最小值小于 的概率是 ,然后对它求导得到 ,这个可以认为是最小值为 的相对概率
综合上述讨论,可以得到 的递推式
$$\begin{aligned} &f(n,k,x)\\ =&(n-1)\int_0^x(1-v)^{n-2}f(n-1,k-1,\frac{x}{1-v})dv\\ +&(n-1)\int_x^1(1-v)^{n-2}f(n-1,k,\frac{x}{1-v})dv \end{aligned} $$开始积分
$$\begin{aligned} &\int_0^1f(n,k,x)dx\\ =&(n-1)\int_0^1\int_0^x(1-v)^{n-2}f(n-1,k-1,\frac{x}{1-v})dvdx\\ +&(n-1)\int_0^1\int_x^1(1-v)^{n-2}f(n-1,k,\frac{x}{1-v})dvdx \end{aligned} $$设 然后化简一波,此处省略去了漫长的计算过程
$$\begin{aligned} &\int_0^1f(n,k,x)dx\\ =&\frac{n-1}{n}\int_0^{+\infty} (1-\frac{1}{(t+1)^n})f(n-1,k-1,t)dt\\ +&\frac{n-1}{n}\int_0^{+\infty} \frac{1}{(t+1)^n}f(n-1,k-1,t)dt \end{aligned} $$注意这里积分上界变成了 ,不是 ,因为 的范围可以到正无穷大,而且当 时 仍然有意义且值为 ,所以一定要积到正无穷大!下面推边界的时候也有这方面的说明
貌似得到了更复杂的式子,出现了 这个因子,我们用同样的方法继续积分看看
$$\begin{aligned} &\int_0^{+\infty} \frac{1}{(x+1)^{(n+1)}}f(n,k,x)dx\\ =&\frac{n-1}{n}\int_0^{+\infty} (\frac{1}{(t+1)^n}-\frac{1}{(2t+1)^n})f(n-1,k-1,t)dt\\ +&\frac{n-1}{n}\int_0^{+\infty} \frac{1}{(2t+1)^n}f(n-1,k-1,t)dt \end{aligned} $$事情逐渐清晰起来,可以猜想并证明:
$$\begin{aligned} &\int_0^{+\infty} \frac{1}{(lx+1)^{(n+1)}}f(n,k,x)dx\\ =&\frac{n-1}{n}\int_0^{+\infty} (\frac{1}{(lt+1)^n}-\frac{1}{((l+1)t+1)^n})f(n-1,k-1,t)dt\\ +&\frac{n-1}{n}\int_0^{+\infty} \frac{1}{((l+1)t+1)^n}f(n-1,k-1,t)dt \end{aligned} $$这回可以递推了。设
$$P(n,k,l)=\int_0^{+\infty} \frac{1}{(lx+1)^{(n+1)}}f(n,k,x)dx $$则有
$$P(n,k,l)=\frac{n-1}{n}(P(n-1,k-1,l)-P(n-1,k-1,l+1)+P(n-1,k,l+1)) $$递推边界通过 和 的定义可以计算:
$$P(n,k,l) = \begin{cases} 0, & k=0; \\ \int_0^{+\infty} (lx+1)^{-n-1}dx=\frac{1}{ln}, & k=n+1;\\ \int_0^1 (lx+1)^{-2}dx=\frac{1}{l+1}, & n=1;\\ \end{cases} $$这里为什么 时积到 而 时要积到 呢,因为 时 ,但是 时 表示的是至少 个红包大于 的概率,那么无论 为何值 的值都为
最终答案就是 。
那么这玩意怎么化简呢
首先我们看着 这个因子很难受,不妨修改一下 的定义,用 表示之前 表示的意思,那么递推式和边界都要修改,顺便还能把递推式改为等价的更简洁的形式
$$P(n,k,l) = \begin{cases} 0, & n=0,k\le0; \\ \frac{1}{l}, & n=0,k>0;\\ P(n-1,k-1,l)-P(n-1,k-1,l+1)+P(n-1,k,l+1), & n>0 \end{cases} $$此时 。
假设从 递归到 共调用了 次 分支, 次 分支, 次 分支。需要满足 ,。那么这部分的贡献就是 ,总和为
$$P(n,k,0)=\sum_{a+b+c=n,a+b<k} \frac{n!(-1)^b}{a!b!c!(b+c)} $$继续化简
$$\begin{aligned} P(n,k,0)=&\sum_{a+b+c=n,a+b<k} \frac{n!(-1)^b}{a!b!c!(b+c)}\\ =&\sum_{a=0}^{k-1} \frac{n!}{a!(n-a)}\sum_{b=0}^{k-a-1} (-1)^b\frac{1}{b!(n-a-b)!}\\ =&\sum_{a=0}^{k-1} \frac{n!}{a!(n-a)!(n-a)}(-1)^{k-a-1}C(n-a-1,k-a-1)\\ =&\frac{n!}{(n-k)!}\sum_{a=0}^{k-1} \frac{(-1)^{k-a-1}}{(n-a)^2a!(k-a-1)!}\\ =&\frac{n!}{(n-k)!}\frac{1}{(k-1)!}\sum_{a=0}^{k-1} (-1)^{k-a-1}C(k-1,a)(a-n)^{-2}\\ =&\frac{n!}{(n-k)!}\frac{1}{(k-1)!}\sum_{a=0}^{k-1} (-1)^{k-a-1}C(k-1,a)\sum_{j=0}^{\infty}C(-2,j)a^j(-n)^{-2-j}\\ =&\frac{n!}{(n-k)!}\sum_{j=0}^{\infty}C(-2,j)(-n)^{-2-j}\frac{1}{(k-1)!}\sum_{a=0}^{k-1} (-1)^{k-a-1}C(k-1,a)a^j\\ =&\frac{n!}{(n-k)!}\sum_{j=0}^{\infty}(j+1)n^{-2-j}S_2(j,k-1) \end{aligned} $$记 是第二类斯特林数第 列的普通生成函数, 为其导数。我们有:
$$G_m(x)=\sum_{i=0}^\infty S_2(i,m)x^i=\prod_{j=1}^m\frac{x}{1-jx} $$原式可以写成生成函数的形式:
$$\begin{aligned} P(n,k,0)=&\frac{n!}{(n-k)!}\sum_{j=0}^{\infty}(j+1)n^{-2-j}S_2(j,k-1)\\ =&\frac{n!}{(n-k)!} (n^{-3}G_{k-1}'(\frac{1}{n})+n^{-2}G_{k-1}(\frac{1}{n}))\\ =&\frac{n!}{(n-k)!} n^{-2} (1+\sum_{j=1}^{k-1}\frac{n}{n-j})G_{k-1}(\frac{1}{n})\\ =&\frac{n!}{(n-k)!} n^{-1} (\sum_{l=n-k+1}^{n}\frac{1}{l})\prod_{j=1}^{k-1}\frac{1}{n-j}\\ =&\sum_{l=n-k+1}^{n}\frac{1}{l} \end{aligned} $$这回可以快速计算多组询问了。别忘了除以 !!
提醒:比赛时遇到这种题果断打表找规律。
- 1
信息
- ID
- 5076
- 时间
- 2000ms
- 内存
- 250MiB
- 难度
- 6
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者