您的位置:首页 > 编程语言 > C语言/C++

B - Candy

2013-04-24 12:40 120 查看
B -
Candy

卡时间卡的好厉害啊

枚举公式OK







#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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息