BZOJ3450
概率期望DP
f[i]表示到i的期望得分,g[i]表示到i的期望长度。
分三种情况转移:
① s[i]=‘x’:f[i]=f[i-1],g[i]=0
② s[i]=‘o’:f[i]=f[i-1]+2*g[i-1]+1,g[i]=g[i-1]+1
③ s[i]=‘?’:f[i]=f[i-1]+g[i-1]+0.5,g[i]=(g[i-1]+1)/2
然后4318比上一个稍难一点,变形一下
(x+1)^3-x^3=3x^2+3x+1 x为之前的期望长度
递推式包含平方项,平方的期望不等于期望的平方。
于是:
l[i]=(l[i-1]+1)*a[i]
p1[i]=(p1[i-1]+2*l[i-1]+1)*a[i] -----x^2
p2[i]=p2[i-1]+(3*p1[i-1]+3*l[i-1]+1)*a[i] ----x^3
//注意这里的*ai不包含前一项p2,因为每次得分是极大的1,前面的是已经得到的,有a[i]的概率多得括号内的