BZOJ 3450: Tyvj1952 Easy 期望DP
2017-01-16 21:37
369 查看
一道期望DP入门题,我们维护两个数组,一个是len数组,代表到达第i位期望连续长度为多少,len数组相当好维护,如果这位是o,那么len[i]=len[i-1]+1,如果这位是x,那么len[i]=0,如果这位是?那么len[i]就等于上述两种情况的值加和除以2,然后我们再维护一个ans数组,代表达到第i位的期望得分是多少,这个数组的维护也很显然,如果这位是o,那么ans[i]=ans[i-1]+2*len[i-1]+1(自己推一下就明白了),如果是x,那么ans[i]=ans[i-1],如果是?就等于上述两种情况的加和除以2,这样维护完输出ans[len]就可以了。
(我就不用long double -_-)
(我就不用long double -_-)
#include<cstdio> #include<cstdlib> #include<iostream> #include<iomanip> #include<ctime> #include<cmath> #include<cstring> #include<string> #include<algorithm> using namespace std; double ans[1000000]; double len[1000000]; char s[1000000]; int main() { int n; scanf("%d",&n); scanf("%s",s+1); for(int i=1;i<=n;i++) { if(s[i]=='o') { len[i]=len[i-1]+1; ans[i]=ans[i-1]+2*len[i-1]+1; } else if(s[i]=='x') { len[i]=0; ans[i]=ans[i-1]; } else { len[i]=(len[i-1]+1.0)/2.0; ans[i]=ans[i-1]+len[i-1]+0.5; } } printf("%.4lf",ans ); return 0; }
相关文章推荐
- bzoj 3450: Tyvj1952 Easy 期望dp
- 【BZOJ3450】Tyvj1952 Easy【期望DP】
- 【bzoj3450】Tyvj1952 Easy 期望DP
- bzoj3450 Tyvj1952 Easy【期望dp】
- BZOJ 3450 Tyvj1952 Easy 期望dp
- 【bzoj3450】Tyvj1952 Easy 期望dp
- 【BZOJ3450】Tyvj1952 Easy 期望DP
- BZOJ 3450 Tyvj1952 Easy ——期望DP
- 【bzoj3450】Tyvj1952 Easy 期望dp
- BZOJ 3450 Tyvj1952 Easy 期望DP
- BZOJ 4318: OSU! 期望概率dp && 【BZOJ3450】【Tyvj1952】Easy 概率DP
- 【期望DP】BZOJ3450- Tyvj1952 Easy
- [BZOJ 3450]Tyvj1952 Easy:期望DP
- 期望【bzoj3450】Tyvj1952 Easy
- 3450: Tyvj1952 Easy 概率与期望 DP
- BZOJ 3450: Tyvj1952 Easy【期望
- 【BZOJ3450】【Tyvj1952】Easy 概率DP
- bzoj3450 Tyvj1952 Easy 概率期望
- bzoj 3450: Tyvj1952 Easy(概率DP)
- BZOJ 3450: Tyvj1952 Easy [DP 概率]