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)。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步