cogs1487. 麻球繁衍

来源:互联网 发布:2016黑马程序员课程表 编辑:程序博客网 时间:2024/06/11 04:11

传送门

设f[i]表示一只毛球在i天后全部死亡的概率,那么结果可由递推得到,即

f[i]=j=0n1p[j]f[i1]j

最终结果为f[m]k

CODE:

#include<cmath>#include<cstdio>double p[1005];double f[1005];int T,n,m,k;int main(){    scanf("%d",&T);    for(int Case=1;Case<=T;Case++)    {        scanf("%d%d%d",&n,&k,&m);        for(int i=0;i<n;i++)          scanf("%lf",&p[i]);        f[0]=0;f[1]=p[0];        for(int i=2;i<=m;i++)        {            f[i]=0;            for(int j=0;j<n;j++)              f[i]+=p[j]*pow(f[i-1],j);        }        printf("Case #%d: %.7lf\n",Case,pow(f[m],k));    }    return 0;}

总结:以后做题的时候可以考虑是否可以在求出一个的情况后得出总答案的方法。

原创粉丝点击