CF891E Lust(推式子,EGF)
Posted 吃花椒的妙酱
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CF891E Lust(推式子,EGF)相关的知识,希望对你有一定的参考价值。
题目大意:n个数,进行k次操作,每次对ax进行减1操作,然后对答案加上除ax外所有数的乘积,求期望,对1e9+7取模。
思路:
每次操作为
r
e
s
+
=
∏
i
!
=
x
a
i
res+=\\prod_i!=xa_i
res+=∏i!=xai等价于
+
=
∏
a
i
−
(
a
x
−
1
)
∏
i
!
=
x
a
i
+=\\proda_i-(a_x-1)\\prod_i!=xa_i
+=∏ai−(ax−1)∏i!=xai
然后发现,进行若干次操作后,结果是
∏
a
i
−
∏
(
a
i
−
x
i
)
的
形
式
\\prodai-\\prod(a_i-x_i)的形式
∏ai−∏(ai−xi)的形式,其中xi表示ai被减一的次数(由上面等价式,得若干次操作±可以消掉)
所求的期望 =
∏
a
i
−
∏
(
a
i
−
x
i
)
\\prodai-\\prod(a_i-x_i)
∏ai−∏(ai−xi)的期望,即求后面一项的期望
∏
i
=
1
n
(
a
i
−
x
i
)
(
其
中
∑
x
i
=
k
)
\\prod_i=1^n(a_i-x_i)(其中\\sumxi=k)
∏i=1n(ai−xi)(其中∑xi=k),相当于k个有序的减一操作给到n个项,其中同个项的减一操作不区分顺序
上式期望 =
k
!
x
1
!
x
2
!
.
.
x
n
!
∗
[
x
1
+
x
2
+
.
.
x
n
=
k
]
∏
(
a
i
−
x
i
)
n
k
=
k
!
∗
[
x
1
+
x
2
+
.
.
x
n
=
k
]
∏
(
a
i
−
x
i
x
i
!
)
n
k
\\frac\\frack!x_1!x_2!..x_n! * [x_1+x_2+..x_n=k]\\prod(a_i-x_i)n^k=\\frack! * [x_1+x_2+..x_n=k]\\prod(\\fraca_i-x_ix_i!)n^k
nkx1!x2!..xn!k!∗[x1+x2+..xn=k]∏(ai−xi)=nkk!∗[x1+x2+..xn=k]∏(xi!ai−xi)
设生成函数
F
i
(
x
)
=
∑
j
>
=
0
a
i
−
j
j
!
x
j
=
a
i
∑
j
>
=
0
1
j
!
x
j
−
x
∑
1
j
!
x
j
=
(
a
i
−
x
)
e
x
p
(
x
)
F_i(x) = \\sum_j>=0\\fraca_i-jj!x^j = a_i\\sum_j>=0\\frac1j!x^j - x\\sum\\frac1j!x^j = (a_i-x)exp(x)
Fi(x)=∑j>=0j!ai−jxj=ai∑j>=0j!1xj−x∑j!1xj=(ai−x)exp(x)
分子部分化简一下
[
x
1
+
x
2
+
.
.
x
n
=
k
]
∏
(
a
i
−
x
i
x
i
!
)
=
[
x
k
]
∏
i
=
1
n
F
i
=
[
x
k
]
e
x
p
(
n
x
)
∏
i
=
1
n
(
a
i
−
x
)
[x_1+x_2+..x_n=k]\\prod(\\fraca_i-x_ix_i!) = [x^k]\\prod_i=1^nF_i = [x^k]exp(nx)\\prod_i=1^n(a_i-x)
[x1+x2+..xn=k]∏(xi!ai−xi)=[xk]∏i=1nFi=[xk]exp(nx)∏i=1n(ai−x)
我们可以枚举后半部分x的次数i(n方算一下),则exp的次数为k-i,由高中知识易得exp(nx)次数为k-i的项的系数为
n
k
−
i
(
k
−
i
)
!
\\fracn^k-i(k-i)!
(k−i)!以上是关于CF891E Lust(推式子,EGF)的主要内容,如果未能解决你的问题,请参考以下文章
AtCoder Beginner Contest 241EX(推式子)