维护一个最长后缀的
a的期望和a^2的期望
自己yy的算法
竟然A掉了真是不知所措
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<queue>
#include<vector>
#include<set>
#include<map>
#include<algorithm>
#include<iostream>
#define T 333333
using namespace std;
char s[T];
double x1[T],x2[T],ans;
int n;
double cal(char s)
{
if(s=='?')return 0.5;
if(s=='o')return 1.0;
return 0.0;
}
int main()
{
scanf("%d%s",&n,s+1);
for(int i=1;i<=n;i++)
{
double k=cal(s[i]);
x1[i]=(x1[i-1]+1)*k;
x2[i]=(x2[i-1]+2*x1[i-1]+1)*k;
ans+=x2[i-1]*(1-k);
}
printf("%.4lf",(double)ans+x2[n]);
return 0;
}