题解 | #Let's Play Osu!#

Lets Play Osu!

https://ac.nowcoder.com/acm/problem/109719

期望长度:

ki=(ki1+1)×pi k_i=(k_{i−1}+1)×p_i ki=(ki1+1)×pi

期望分数:

fi=fi1×(1pi)+(fi1+2×ki1+1)×pi f_i=f_i−1×(1−p_i)+(f_i−1+2×k_i−1+1)×p_i fi=fi1×(1pi)+(fi1+2×ki1+1)×pi

于是可以写出:

int n;
double p[N],f[N],k[N];

void solve(){
	//k[0] = 0;
	rep(i,1,n)
		k[i] = (k[i-1] + 1) * p[i];

	//f[0] = 0;
	rep(i,1,n){
		f[i] = f[i-1]*(1.0-p[i]) + (f[i-1] + 2.0*k[i-1] + 1.0)*p[i];
	}
	printf("%.10lf",f[n]);
}
全部评论

相关推荐

2 1 评论
分享
牛客网
牛客企业服务