比赛的时候没想到啊~~ 想到了就是一件很简单的题。。。。。。
思维啊,思维啊,思维啊。。。。。。
#include<cstdio>
#include<cmath>
int main()
{
int n,id=0;
double p,q,cp,cq;
while(~scanf("%d%lf",&n,&p))
{
q=1-p;
cq=cp=1;
int i,last=n+1;
double ans=0;
for(i=0;i<n;i++)
{
if(i)
{
cp = cp * (n+i) * p / i;
cq = cq * (n+i) * q / i;
while(cp>n || cq>n)
{
cp *= q;
cq *= p;
last --;
}
}
ans += (n-i) * cq * pow(p,last);
ans += (n-i) * cp * pow(q,last);
}
printf("Case %d: %.6f\n",++id,ans);
}
return 0;
}