*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_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相关推荐
- [ 生成函数 ] 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 ...
- 【CF891E】Lust 生成函数
[CF891E]Lust 题意:给你一个长度为n的序列$a_i$,对这个序列进行k次操作,每次随机选择一个1到n的数x,令$res+=\prod\limits_{i!=x}a_i$(一开始res=0) ...
- CodeForces 891E Lust(生成函数)
大致题意:给出一个数列{an},每次随机的选择一个数字ai,产生出了ai之外其余所有数字之积的贡献,然后ai减一.现在进行k次这样的操作,问最后者k次操作产生的贡献之和是多少. 这个贡献看起来很复杂, ...
- [生成函数][DP] Codeforces 891 E. Lust
SolutionSolutionSolution 设最后是这个样子 a=(ai−bi)a=(ai−bi)\textbf{a}=(a_i-b_i) ,可以通过数学归纳得到 res=∏iai−∏i(ai− ...
- 【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=jai−( ...
- CodeForces 891 E.Lust(生成函数)
Description 给出一长度为nnn的序列a1,...,an" role="presentation" style="position: relative ...
- Codeforces 891E. Lust 生成函数
Solution 每次得到的值可以看做操作后整个序列的乘积减去操作前整个序列的乘积,这样就把问题转化为求最后数列的乘积减去开始数列的乘积. 把式子列出来,设bib_ibi为aia_iai被减去的值 ...
- Codeforces 891E Lust 生成函数
题意 现在给你一有n个整数的序列a[],有一个初始为0的值res,重复下面的过程k次: "随机选择一个[1,n]之间的下标x,res加上所有满足i≠x的a[i]的乘积,然后将a[x]减去1& ...
- [生成函数阶段性小结][CF891E]Lust
问题描述 给你一个长度为n的数组a[],还有操作数K,每次操作你在下标[1..n]中等概率选择一个下标x,贡献+=∏i!=xa[i]∏i!=xa[i]\prod_{i!=x}a[i],然后a[x]-= ...
最新文章
- jq判断滚动条向上还是向下
- 什么是CPU的虚拟化技术?优势又是什么
- router linux命令,router os 常用命令详解
- kafka消费并导出_如何使用Docker内的Kafka服务?消息服务测试实践篇
- 大学计算机基础 课程的说课,大学计算机基础资料说课稿.ppt
- 21朵水仙花算法java,柏拉图说,如果你有两块面包,你应当用一块去换一朵水仙花。。。。。...
- zigbee工业应用技术
- android手机连接无线路由器上网设置,手机连接无线网络怎么设置?手机Wifi无线网设置教程...
- [react] 在使用react过程中你都踩过哪些坑?你是怎么填坑的?
- Redis主从复制配置(原理剖析)
- 服务器磁盘扩展容量操作流程
- 安卓蓝牙键盘切换输入法_超薄无线蓝牙双模罗技K580键盘,自由切换享受打字快乐...
- springboot 不使用 thymeleaf_springboot 使用swagger 不显示basic-error-controller解决
- WebBrowser提交submit后界面不刷新的解决办法
- unixbench分析_unixbench测试CPU性能工具
- 小米4 win10 刷回android,小米4怎么从win10刷回MIUI 小米4 win10刷回MIUI系统详细教程...
- html判定会员,会员详情查询.html
- 启用新博客域名 www.qiuchengjia.cn
- 无人机满世界惹祸 各国纷纷立法应对
- 你可得知道物理地址与IP地址