码迷,mamicode.com
首页 > 其他好文 > 详细

bzoj4318 OSU!

时间:2018-08-13 19:42:36      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:.com   $1   main   c++   class   int   color   精度   lin   

题意

传送门

题解

考虑动态硅画。

$g(i)$ 表示以 $i$ 结尾的最长 $1$ 的期望长度,$l(i)$ 表示以 $i$ 结尾的最长 $1$ 的长度的平方的期望,$f(i)$ 表示以 $i$ 结尾的期望得分。

注意:这里 $l(i)\not= g(i)^2$ 。

然后 dp 就好了

调试记录

  • 精度炸了。。。

代码

#include <bits/stdc++.h>
using namespace std;

typedef long double ld;
int n;
ld S[100005], f[100005], g[100005], l[100005];

int main()
{
    scanf("%d", &n);
    for (int i=1; i<=n; i++) scanf("%Lf", &S[i]);
    for (int i=1; i<=n; i++) {
        g[i] = S[i] * (g[i-1] + 1);
        l[i] = S[i] * (l[i-1] + 2*g[i-1] + 1);
        f[i] = S[i] * (f[i-1] + 3*l[i-1] + 3*g[i-1] + 1) + (1-S[i]) * f[i-1];
    }
    printf("%.1Lf\n", f[n]);
    return 0;
}

 

bzoj4318 OSU!

标签:.com   $1   main   c++   class   int   color   精度   lin   

原文地址:https://www.cnblogs.com/mchmch/p/bzoj-4318.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!