3450: Tyvj1952 Easy|概率与期望

维护一个最长后缀的

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;
}


你可能感兴趣的:(概率与期望)