给定k个虫子,每个虫子会在出生当天死亡,且在死亡之前产生若干个后代,同时给出产生i个后代的概率Pi
求问在m天内,所有虫子全部死亡的概率。
转化命题,所有虫子全部死亡,即初始的每一个虫子的后代全部死亡,所以只要考虑单个虫子即可。
#include<bits/stdc++.h> using namespace std; const int maxn=1000+10,maxm=1000+10; int n,k,m; double P[maxn],f[maxm]; int main() {freopen("t.txt","r",stdin); int T; scanf("%d",&T); for(int kase=1;kase<=T;kase++) { 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",kase,pow(f[m],k)); } return 0; }