Bloodsucker

Aimee

除了那个概率有点长以外没有什么难的

\(f_i=p*f_{i+1}+(1-p)*f_i+1=\frac{f_{i+1}+1}{p}\)

其中\(p=\frac{2*(n-1)*i}{n*(n-1)}\)

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int t;
int n;
double k;
double dp[100001];
int main(){
	scanf("%d",&t);
	while(t--){
		scanf("%d%lf",&n,&k);
		memset(dp,0,sizeof(dp));
		for(int i=n-1;i;--i){
			double Aimee=2.0*(n-i)*i/n/(n-1)*k;
			dp[i]=(dp[i+1]*Aimee+1)/Aimee;
		}
		printf("%.3lf\n",dp[1]);
	}
	return 0;
}
posted @ 2021-02-01 15:12  Simex  阅读(100)  评论(0)    收藏  举报