万物生长 / Tribles

题意

一开始有k种生物,这种生物只能活1天,死的时候有pi的概率产生i只这种生物(也只能活一天),询问m天内所有生物都死的概率(包括m天前死亡的情况)

思路

设状态为每只trible在第i天前断子绝孙的概率,再进行转移,trible第i天后断子绝孙等价于它生出的孩子在第i-1天后要断子绝孙,因此,进行转移

代码:

#include<bits/stdc++.h>
using namespace std;
double f[1003],a[1003];
int main(){
    int n,i,j,k,m,t,l=0;
    scanf("%d",&t);
    while(t--){
        l++;
        scanf("%d%d%d",&n,&k,&m);
        for(i=0;i<n;i++)scanf("%lf",&a[i]);
        f[1]=a[0];
        for(i=2;i<=m;i++){
            f[i]=0;
            for(j=0;j<n;j++){
                f[i]+=a[j]*pow(f[i-1],j);
            }
        }
        printf("Case #%d: %7lf\n",l,pow(f[m],k));
    }
    return 0;
}

 

posted @ 2020-11-18 21:02  Jessica_Cao  阅读(183)  评论(0编辑  收藏  举报