CF601 C 题解
C:
题意:m个人参加n场比赛,每个人最终排名为每次比赛名次相加排序,已知主角每场比赛的名次,求其最终排名的期望值。(n<=100, m<=1000)
Solution:
好家伙完全没有思路,看题解发现原来期望dp还能这么玩儿。
设 表示前 i 场比赛名次和为 j 的人数期望有多少个。
我们发现这个状态是可以转移的,而且转移方程很好写:
这是什么呢,就是说如果一些人想要在 i 场比赛后名次和为 j ,他们可以是前 i-1 场和为 j-k,第 i 场名次为 k。 这个状态的值,就是前一场的那些期望人数乘上可以转移到此状态的概率,求和。
由于 k 不能和 a[i] 相等,因此对于所有人,第 i 场名次为 k 的概率都是 。
最终答案就是严格小于主角名次和的人数的期望值 再加一。
整个dp过程用前缀和优化,复杂度O(n^2m)。
__EOF__

分类:
ACM
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具