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