Let’s Play Osu!
题目链接:luogu CF235B
题目大意
一共有 n 次操作,每次操作只有成功与失败之分,成功对应 1,失败对应 0,n 次操作对应为 1 个长度为 n 的 01 串。在这个串中连续的 X 个 1 可以贡献 X^2 的分数。现在给出 n,以及每个操作的成功率,请你输出期望分数。
思路
其实就是这道题和这道题的结合版,看思路和方法的话就看前面吧。
代码
#include<cstdio>
using namespace std;
int n;
double a[100001], ans, two[100001], one[100001];
int main() {
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
scanf("%lf", &a[i]);
one[i] = (one[i - 1] + 1.0) * a[i];
ans += (2.0 * one[i - 1] + 1.0) * a[i];
}
printf("%lf", ans);
return 0;
}