比赛 2022级数学专题练习赛2 评测结果 AAAAAAAAAA
题目名称 Chocolate 最终得分 100
用户昵称 op_组撒头屯 运行时间 9.226 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2022-12-19 19:40:10
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
const int N=100+5; 
int c,n,m,now;
ld f[3][N];
int main(){
	freopen ("poj1322_chocolate.in","r",stdin);
	freopen ("poj1322_chocolate.out","w",stdout);
	while(scanf("%d",&c)!=EOF){
		if (!c)break;
		scanf("%d%d",&n,&m);
		if (m>c){
			printf("0.0000\n");continue;
		}
		for (int i=0;i<=c;i++)f[0][i]=0;
		f[0][0]=1;now=1;
		for (int i=1;i<=n;i++){
			for (int j=0;j<=c;j++){
				ld t=0;
				if (j!=0)t+=(1.0-1.0*(j-1)/c)*f[now^1][j-1];
				if (j!=c)t+=(1.0*(j+1)/c)*f[now^1][j+1];
				f[now][j]=t;
			}
			now^=1;
		}
		printf("%.4Lf\n",f[now^1][m]);
	}
	return 0;
}