JOISC2014 挂饰(dp)

Numpy基础教程

  返回  

HNOI2015 亚瑟王

2021/8/20 20:55:26 浏览:

根据期望的线性性质,我们可以把本题的期望写成 ∑ i = 1 n t p [ i ] ∗ d [ i ] \sum_{i=1}^ntp[i] * d[i] i=1ntp[i]d[i]
即每个数的实际可能被使用的概率乘上贡献,于是这题我们就把问题转化为如何求 t p [ i ] tp[i] tp[i],首先我们考虑第一张牌, t p [ 1 ] = 1 − ( 1 − p [ i ] ) r tp[1] = 1-(1 - p[i])^r tp[1]=1(1p[i])r,这个就是第一张牌始终憋着不出的概率,然后我们考虑第二张牌,我们发现在考虑第二张牌的时候,需要考虑第一张牌,没法算出 t p [ 2 ] tp[2] tp[2],所以我们考虑引入 d p dp dp,我们设 f [ i ] [ j ] f[i][j] f[i][j]表示所有 r r r轮中对于前 i i i张牌打出 j j j张的概率,所以对于第 i i i张牌的实际使用概率 t p [ i ] tp[i] tp[i],我们会发现 t p [ i ] = ∑ j = 0 r f [ i − 1 ] [ j ] ∗ ( 1 − ( 1 − p [ i ] ) r − j ) tp[i] = \sum_{j=0}^rf[i - 1][j]*(1 - (1 - p[i])^{r - j}) tp[i]=j=0rf[i1][j](1(1p[i])rj)在前 i − 1 i - 1 i1张牌里我们已经有 j j j轮是不用考虑第i张牌,对于剩下的 r − j r - j rj轮我们考虑第 i i i张牌,对于所有 r r r轮情况求和,就是我们的 t p [ i ] tp[i] tp[i]
然后我们推一下 d p dp dp方程
对于 f [ i ] [ j ] f[i][j] f[i][j]我们考虑第 i i i张牌在不在这 j j j张里
如果不在 f [ i ] [ j ] = ∑ j = 0 r f [ i − 1 ] [ j ] ∗ ( 1 − p [ i ] ) r − j f[i][j] = \sum_{j = 0}^rf[i - 1][j] * (1 - p[i])^{r - j} f[i][j]=j=0rf[i1][j](1p[i])rj
如果在 f [ i ] [ j ] = ∑ j = 1 r f [ i − 1 ] [ j − 1 ] ∗ ( 1 − ( 1 − p [ i ] ) r − j + 1 ) f[i][j] = \sum_{j = 1}^rf[i - 1][j - 1] * (1 - (1 - p[i])^{r - j + 1}) f[i][j]=j=1rf[i1][j1](1(1p[i])rj+1)

联系我们

如果您对我们的服务有兴趣,请及时和我们联系!

服务热线:18288888888
座机:18288888888
传真:
邮箱:888888@qq.com
地址:郑州市文化路红专路93号