$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_i\frac{n^{k-i}}{(k-i)!}$

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

转载于:https://www.cnblogs.com/Blue233333/p/8757049.html

*Codeforces891E. Lust相关推荐

  1. [ 生成函数 ] Codeforces891E Lust

    设 bibib_i 表示 aiaia_i 减了几次,那么答案就是 ∏ni=1ai−∏ni=1(ai−bi)∏i=1nai−∏i=1n(ai−bi)\prod_{i=1}^na_i-\prod_{i=1 ...

  2. 【CF891E】Lust 生成函数

    [CF891E]Lust 题意:给你一个长度为n的序列$a_i$,对这个序列进行k次操作,每次随机选择一个1到n的数x,令$res+=\prod\limits_{i!=x}a_i$(一开始res=0) ...

  3. CodeForces 891E Lust(生成函数)

    大致题意:给出一个数列{an},每次随机的选择一个数字ai,产生出了ai之外其余所有数字之积的贡献,然后ai减一.现在进行k次这样的操作,问最后者k次操作产生的贡献之和是多少. 这个贡献看起来很复杂, ...

  4. [生成函数][DP] Codeforces 891 E. Lust

    SolutionSolutionSolution 设最后是这个样子 a=(ai−bi)a=(ai−bi)\textbf{a}=(a_i-b_i) ,可以通过数学归纳得到 res=∏iai−∏i(ai− ...

  5. 【Codeforces 891 E】 Lust(生成函数)

    传送门 考虑每次贡献可以差分成aj∏i≠jai−(aj−1)∏i≠jaia_j\prod_{i\not=j}a_i-(a_j-1)\prod_{i\not=j}a_iaj​∏i​=j​ai​−( ...

  6. CodeForces 891 E.Lust(生成函数)

    Description 给出一长度为nnn的序列a1,...,an" role="presentation" style="position: relative ...

  7. Codeforces 891E. Lust 生成函数

    Solution 每次得到的值可以看做操作后整个序列的乘积减去操作前整个序列的乘积,这样就把问题转化为求最后数列的乘积减去开始数列的乘积. 把式子列出来,设bib_ibi​为aia_iai​被减去的值 ...

  8. Codeforces 891E Lust 生成函数

    题意 现在给你一有n个整数的序列a[],有一个初始为0的值res,重复下面的过程k次: "随机选择一个[1,n]之间的下标x,res加上所有满足i≠x的a[i]的乘积,然后将a[x]减去1& ...

  9. [生成函数阶段性小结][CF891E]Lust

    问题描述 给你一个长度为n的数组a[],还有操作数K,每次操作你在下标[1..n]中等概率选择一个下标x,贡献+=∏i!=xa[i]∏i!=xa[i]\prod_{i!=x}a[i],然后a[x]-= ...

最新文章

  1. jq判断滚动条向上还是向下
  2. 什么是CPU的虚拟化技术?优势又是什么
  3. router linux命令,router os 常用命令详解
  4. kafka消费并导出_如何使用Docker内的Kafka服务?消息服务测试实践篇
  5. 大学计算机基础 课程的说课,大学计算机基础资料说课稿.ppt
  6. 21朵水仙花算法java,柏拉图说,如果你有两块面包,你应当用一块去换一朵水仙花。。。。。...
  7. zigbee工业应用技术
  8. android手机连接无线路由器上网设置,手机连接无线网络怎么设置?手机Wifi无线网设置教程...
  9. [react] 在使用react过程中你都踩过哪些坑?你是怎么填坑的?
  10. Redis主从复制配置(原理剖析)
  11. 服务器磁盘扩展容量操作流程
  12. 安卓蓝牙键盘切换输入法_超薄无线蓝牙双模罗技K580键盘,自由切换享受打字快乐...
  13. springboot 不使用 thymeleaf_springboot 使用swagger 不显示basic-error-controller解决
  14. WebBrowser提交submit后界面不刷新的解决办法
  15. unixbench分析_unixbench测试CPU性能工具
  16. 小米4 win10 刷回android,小米4怎么从win10刷回MIUI 小米4 win10刷回MIUI系统详细教程...
  17. html判定会员,会员详情查询.html
  18. 启用新博客域名 www.qiuchengjia.cn
  19. 无人机满世界惹祸 各国纷纷立法应对
  20. 你可得知道物理地址与IP地址

热门文章

  1. 图像处理;C++求已知两直线方程交点
  2. 一图解千言,从兴趣意念直达搜索目标!
  3. 搭配之家:小米蒸红薯,能够养胃健脾,可以补血健脑,吃得香睡得好
  4. Windows 10源代码泄露风波(上)
  5. 小虎电商浏览器:拼多多退款对商家有什么影响?如何降低退款率?
  6. 2019人民大学信息学院夏令营经验贴(二)
  7. 机器学习-8(单调函数)
  8. Redis源码剖析和注释(二十四)--- Redis Sentinel实现(哨兵操作的深入剖析)
  9. 关于程序员这个职业缺点总结
  10. 智慧城市2020的三个焦点:网格化、健康码、老年人