题目链接:
PE 323
题意:
给你一系列
32bits
的无符号数。
x
初始为
求
题解:概率dp。
假设
dp[i]
表示有
i
个
那么怎么去找这些递推关系,或者说转移方程呢?
详细说明一下。
对于
i=1
时,显然,我们有
12
的几率可以通过一个操作得到1个bits。那么还有
12
的几率我们还要基于前面的已经是1个bits时的,即
12∗(1+dp[1])
。所以
dp[1]=12+12∗(1+dp[1])=1+dp[1]2
,所以
dp[1]=2
。
同理,对于 i=2 ,我们可以得到, dp[2]=14+24∗(1+dp[1])+14∗(1+dp[2])=14+3∗24+14+dp[2]4 ,所以, dp[2]=83=2.666666667... 。
对于有
N个bits
的,如果第一次就把其中
K个bits变成1
的概率就为:
C(N,K)2N
.
所以:
dp[N]=12N+C(N,1)2N∗(1+dp[1])+C(N,2)2N∗(1+dp[2])+...+C(N,N−1)2N∗(1+dp[n−1])+12N∗(1+dp[n])
。
然后可以写代码解决了。