题意
一开始有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 ",l,pow(f[m],k)); } return 0; }