Processing math: 5%

CF891E Lust 生成函数

传送门


设在某一次操作之后的a数组变为了a'数组,那么\prod\limits_{i \neq x} a_i = \prod a_i - \prod a_i'。那么就不难发现我们需要求的是进行这k次操作之后的a数组所有数的乘积的期望值。

注意到当第i个数被减去p_i次,那么方案数就是\frac{k!}{\prod p_i!},那么考虑指数型生成函数求解。那么第i个数的生成函数就是\sum\limits_{j \geq 0} \frac{a_i - j}{j!}x^j = (a_i - x)e^x。那么答案就是k![x^k]e^{nx}\prod (a_i - x)。暴力求出\prod (a_i - x)的表示,求出它的每一项对应的e^{nx}的项的系数,然后就可以求出这个值了。值得注意的是k!太大,但是e^{nx}中也有一个阶乘,这两个可以进行抵消使得需要计算的量在O(n)范围内。复杂度O(n^2)

代码

posted @   cjoier_Itst  阅读(353)  评论(2编辑  收藏  举报
点击右上角即可分享
微信分享提示