bzoj4318 OSU!
Posted mchmch
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bzoj4318 OSU!相关的知识,希望对你有一定的参考价值。
题意
题解
考虑动态硅画。
$g(i)$ 表示以 $i$ 结尾的最长 $1$ 的期望长度,$l(i)$ 表示以 $i$ 结尾的最长 $1$ 的长度的平方的期望,$f(i)$ 表示以 $i$ 结尾的期望得分。
注意:这里 $l(i) ot= 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 ", f[n]); return 0; }
以上是关于bzoj4318 OSU!的主要内容,如果未能解决你的问题,请参考以下文章