luogu P1654 OSU! 概率dp

Posted yuyanjiab

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了luogu P1654 OSU! 概率dp相关的知识,希望对你有一定的参考价值。

传送门

基础dp还是想了好久....

维护连续区间长度的期望 还是三次方

考虑一次方非常好维护 问题就是期望长度的和 

记录一下末端1个数的期望就行

有p[i]的概率继承 有(1-p[i]) 的概率中断

那么三次方是一样的

f[],g[],h[]分别维护1,2,3次下的末端期望长度

然后就可以转移

注意h[]同时维护最终答案

Time cost : 35min

Code:

技术分享图片
 1 #include<algorithm>
 2 #include<iostream>
 3 #include<cstring>
 4 #include<cstdio>
 5 #include<cmath>
 6 using namespace std;
 7 #define N 100005
 8 
 9 int n;
10 double p[N],f[N],g[N],h[N];
11 
12 int main()
13 {
14     scanf("%d",&n);
15     for (int i=1;i<=n;++i) scanf("%lf",&p[i]);
16     for (int i=1;i<=n;++i)
17     {
18         g[i]=p[i]*(g[i-1]+1);
19         h[i]=p[i]*(h[i-1]+2*g[i-1]+1);
20         f[i]=p[i]*(f[i-1]+3*h[i-1]+3*g[i-1]+1)+(1-p[i])*f[i-1];
21     }
22     printf("%.1lf
",f[n]);
23 }
View Code

 

以上是关于luogu P1654 OSU! 概率dp的主要内容,如果未能解决你的问题,请参考以下文章

P1654 OSU!(期望dp)

P1654 OSU!(期望dp)

p1654 OSU!

题解 P1654 OSU!

BZOJ 4318: OSU! [DP 概率]

OSU!JZOJ3468[概率与期望][DP思想]