uva 11637

来源:互联网 发布:语音网络系统如何注册. 编辑:程序博客网 时间:2024/06/06 16:28
#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;long double fac[100010];void init(){for(int i=1;i<100010;i++)fac[i]=fac[i-1]+log((long double)i); }double solve(int n,int k){if(n==1)  return 0;if(n-2*k-1<=0) return n;double res=0;for(int i=1;i<=n;i++){int x=max(i-k-1,0)+max(n-(i+k),0);if(x>=2*k){res+=exp(fac[x]-fac[x-2*k]+fac[n-2*k-1]-fac[n-1]);} }return n-res; }int main(){int t=1,n,k;init();while(~scanf("%d%d",&n,&k)&&(n+k)){printf("Case %d: %.4f\n",t++,solve(n,k));}}