BZOJ 3450: Tyvj1952 Easy [DP 概率]
2017-03-05 18:50
381 查看
传送门
题意:$ox?$组成的序列,$?$等概率为$o\ or\ x$,得分为连续的$o$的长度的平方和,求期望得分
一开始没想出来,原因在于不知道如何记录长度
其实我们同时求得分和长度的期望就好了
$(x+1)^2=x^2+2x+1$
其实就是维护了$x$的期望和$x^2$的期望
题意:$ox?$组成的序列,$?$等概率为$o\ or\ x$,得分为连续的$o$的长度的平方和,求期望得分
一开始没想出来,原因在于不知道如何记录长度
其实我们同时求得分和长度的期望就好了
$(x+1)^2=x^2+2x+1$
其实就是维护了$x$的期望和$x^2$的期望
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> using namespace std; typedef long long ll; const int N=3e5+5; inline int read(){ char c=getchar();int x=0,f=1; while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();} while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();} return x*f; } int n; char s ; double f ,d ; int main(){ freopen("in","r",stdin); n=read();scanf("%s",s+1); for(int i=1;i<=n;i++){ if(s[i]=='o') d[i]=d[i-1]+1,f[i]=f[i-1]+2*d[i]-1; else if(s[i]=='x') d[i]=0,f[i]=f[i-1]; else d[i]=(d[i-1]+1)*0.5,f[i]=f[i-1]+(2*d[i-1]+1)*0.5; } printf("%.4lf",f ); }
相关文章推荐
- BZOJ 4318: OSU! 期望概率dp && 【BZOJ3450】【Tyvj1952】Easy 概率DP
- 【BZOJ3450】【Tyvj1952】Easy 概率DP
- bzoj 3450: Tyvj1952 Easy(概率DP)
- BZOJ 3450 Tyvj1952 Easy ——期望DP
- 【bzoj3450】Tyvj1952 Easy 期望dp
- bzoj 3450: Tyvj1952 Easy 期望dp
- 【BZOJ3450】【Tyvj1952】Easy 可能DP
- 【bzoj3450】Tyvj1952 Easy 期望dp
- 【概率】BZOJ 3450:Tyvj1952 Easy
- BZOJ 3450 Tyvj1952 Easy 期望dp
- 【bzoj 3450】【Tyvj 1952】Easy(概率与期望+递推)
- 【概率】BZOJ 3450:Tyvj1952 Easy
- [BZOJ 3450]Tyvj1952 Easy:期望DP
- 【BZOJ3450】Tyvj1952 Easy【期望DP】
- BZOJ 3450 Tyvj1952 Easy 期望DP
- 【bzoj3450】Tyvj1952 Easy 期望DP
- bzoj 3450: Tyvj1952 Easy (概率与期望dp)
- bzoj3450 Tyvj1952 Easy【期望dp】
- BZOJ 3450: Tyvj1952 Easy 期望DP
- 【期望DP】BZOJ3450- Tyvj1952 Easy