• *Codeforces891E. Lust


    $n leq 5000$的数列,$k leq 1e9$次操作,每次随机选一个数-1,然后把其他数的积加入答案。问最后答案期望,$mod 1e9+7$。

    略微观察可以发现答案=初始数列的积-最终数列的积。所以就是求最终数列的积的期望。证明的话,可以归纳法,

    $新答案=(k次操作后的数列-(k+1)次操作后的数列)+(原数列-k次操作后的数列)$

    $=原数列-(k+1)次操作后的数列$。

    接下来就求最终数列的积了。$b_i$--第$i$个数减少的次数,这里要枚举所有$b_i$,然后$E$表示最终数列积的期望,$E=sum_{sum_{i=1}^nb_i=k}frac{frac{k!}{prod_{1}^{n}b_i}}{n^k}prod_{i=1}^{n}(a_i-b_i)=frac{k!}{n^k} sum_{sum_{i=1}^n b_i=k} frac{a_i-b_i}{b_i!}$

    $sum b_i=k$的条件容易让人联想到:多个多项式乘积的第$k$项系数。那就把$frac{k!}{n^k}$先不理了,转生成函数:

    $F(x)=prod_{i=1}^{n}sum_{j=0}^{infty}frac{a_i-j}{j!}x^j$

    $=prod_{i=1}^n(sum_{j=0}^{infty}frac{a_i*x^j}{j!}-sum_{j=1}^{infty}frac{x*x^{j-1}}{(j-1)!})$

    $=prod_{i=1}^{n}(a_i-x)e^x$

    $=e^{nx}prod_{i=1}^{n}(a_i-x)$

    非常好。现求它的第$k$项系数。后面那坨由于$n$不大直接$n^2$dp一下即可。($f(i,j)$--前$i$个括号里有$j$个选了常数项)设其第$i$项系数$c_i$。

    前面$e^{nx}$直接泰勒展开。

    然后两个多项式相乘,就得到$_{[x^k]}F(x)=sum_{i=0}^{n}c_ifrac{n^{k-i}}{(k-i)!}$

    然后再乘上之前丢掉的$frac{k!}{n^k}$,得到$E=sum_{i=0}^{n}c_ifrac{k^{underline{i}}}{n^i}$。搞定。

  • 相关阅读:
    Ubuntu部署Asp.net core网站无法访问
    .Net Core IFormFile 始终为空的问题
    Webbench的使用
    JS设置localStorage有效期
    Autofac的简单使用
    对于异步的理解
    DBHelper 数据库帮助类
    利用反射把数据库查询到的数据转换成Model、List(改良版)
    部署方案@应用系统单点切换解决方案
    部署方案@项目版本管理控制流程规范
  • 原文地址:https://www.cnblogs.com/Blue233333/p/8757049.html
Copyright © 2020-2023  润新知