#include<cstdio>
#include<iostream>
#include<cmath>
using namespace std;
const int maxn=200000;
long double l[2*maxn+50];
int n,cas=0;
double p;
void prepare()
{
for(int i=1; i<=2*maxn; i++)
l[i]=l[i-1]+log(i);
}
int main()
{
prepare();
while(scanf("%d%lf",&n,&p)==2)
{
double ans=0.0;
for(int i=1; i<=n; i++)
{
long double c=l[2*n-i]-l[n]-l[n-i];
long double v1=c+(n+1)*log(p)+(n-i)*log(1-p);
long double v2=c+(n+1)*log(1-p)+(n-i)*log(p);
ans+=i*(exp(v1)+exp(v2));
}
printf("Case %d: %lf\n",++cas,ans);
}
return 0;
}
UVA 1639(p333)----Candy
最新推荐文章于 2020-11-10 21:27:41 发布