[cf1153f]Serval and Bonus Problem
-
题目链接
-
题目大意
在长为 \(l\) 的线段上均匀随机 \(n\) 条线段,求被至少 \(k\) 条线段覆盖的期望长度。
对 \(998244353\) 取模。
\(1\le k\le n\le 2000,1\le l\le 10^9\)
-
题解
提供一个 \(\mathcal O(n)\) 的做法。
不妨设 \(l=1\) 。
考虑每个点被覆盖的概率,显然有:
\[p_x=\sum_{i=k}^n\binom{n}{i}(2x(1-x))^i(1-2x(1-x))^{n-i} \]然后我们直接积分:
\[Ans=\int_0^1\sum_{i=k}^n\binom{n}{i}(2x(1-x))^i(1-2x(1-x))^{n-i}dx\\ =\sum_{i=k}^n\binom{n}{i}\int_0^1(2x(1-x))^i\sum_{j=0}^{n-i}\binom{n-i}{j}(-1)^j(2x(1-x))^{j}dx\\ =\sum_{i=k}^n\binom{n}{i}\sum_{j=0}^{n-i}(-1)^j\binom{n-i}{j}2^{i+j}\int_0^1x^{i+j}(1-x)^{i+j}dx \]然后我们发现后面是一个 \(Beta\) 积分,所以可以化成:
\[Ans=\sum_{i=k}^n\binom{n}{i}\sum_{j=0}^{n-i}(-1)^j\binom{n-i}{j}2^{i+j}B(i+j+1,i+j+1) \]其中 \(B(x,y)=\frac{(x-1)!(y-1)!}{(x+y-1)!}\) 。
然后注意到 \(\binom{n}{i}\binom{n-i}{j}=\binom{n}{i+j}\binom{i+j}{j}\) 。
所以我们可以先枚举 \(i+j\) ,那么有:
\[Ans=\sum_{i=k}^n\binom{n}{i}2^iB(i+1,i+1)\sum_{j=0}^{i-k}(-1)^j\binom{i}{j} \]基本上所以题解到这就直接将式子展开做卷积,但实际上,我们有:
\[\sum_{j=0}^{i-k}(-1)^j\binom{i}{j}\\ =\sum_{j=0}^{i-k}(-1)^j\left(\binom{i-1}{j}+\binom{i-1}{j-1}\right)\\ =\sum_{j=0}^{i-k}(-1)^j\binom{i-1}{j}-\sum_{j=0}^{i-k-1}(-1)^j\binom{i-1}{j}\\ =(-1)^{i-k}\binom{i-1}{i-k} \]所以
\[Ans=\sum_{i=k}^n(-1)^{i-k}\binom{i-1}{i-k}\binom{n}{i}2^iB(i+1,i+1) \]这样我们就能在 \(\mathcal O(n)\) 的复杂度内解决问题。

浙公网安备 33010602011771号