码迷,mamicode.com
首页 > 其他好文 > 详细

cf601C. Kleofá? and the n-thlon 概率dp

时间:2017-03-01 12:02:01      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:其他   复杂度   转化   nbsp   表示   期望   i+1   eof   span   

有m个人同时参加了n场比赛,然后每一场比赛有个rank,rank没有重复,然后现在计算总rank,

首先一个人的总分数等于他的n场比赛的rank之和,

然后一个人的总排名等于总分数比他少的人的个数+1

(这个时候总的rank就有可能有重复了)

然后现在一个人的n场比赛的rank分别是a1,...,an,(1<=ai<=m),然后问他的总rank的期望值

n<=100,m<=1000

首先直接计算期望值肯定是很难的,我们转化一下,他的总分数固定了,求总分数比他小的人的期望值e,

那么他的期望值就是e + 1了。

f(i,j)表示前i场比赛,总分数为j的人数的期望

f[101][101*1000]

f(0,0) = m - 1

在递推的过程我们只需要考虑m-1个人,这个固定了的人就不用管了。

注意a[i]的位置被他占据了,这个位置不能放其他人了。

考虑f(i,j),现在我们知道前i场比赛分数为j的人有f个了,对于第i+1场的k(k != a[i+1])这个分数,

m-1个人每一个人在这个位置的概率都是1/(m-1),所以这f个人中有人在这个位置的概率是

f/(m-1),然后对f(i+1,j+k)的贡献就是1 * f/(m-1)了

然后这个递推过程也非常好,但是复杂度是O(m*n^3)的

发现递推可以用前缀和优化,

f(i,j)表示前i场比赛,总分数<=j的人数的期望就可以了

O(m*n^2)

 

cf601C. Kleofá? and the n-thlon 概率dp

标签:其他   复杂度   转化   nbsp   表示   期望   i+1   eof   span   

原文地址:http://www.cnblogs.com/-maybe/p/6483428.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!