UVa 11021




Type: 概率

题解

有点难以理解题解的递推式,把那句f(i-1)表示i-1天后全部死亡改成f(i-1)表示i-1天后一个不生的概率可能更好理解一点吧

不知道怎么证明这个式子,思维还是不强

Code

#include<bits/stdc++.h>
using namespace std;
const int maxn=1010;

double f[maxn],P[maxn];;
int n,k,m,T;

int main(){
    cin>>T;
    for(int i=1;i<=T;++i){
        cin>>n>>k>>m;
        for(int j=0;j<n;++j) cin>>P[j];
        f[0]=0;f[1]=P[0];
        for(int j=2;j<=m;++j){
            f[j]=0;
            for(int t=0;t<n;++t){
                f[j]+=(P[t]*pow(f[j-1],t));
            }
        }
        printf("Case #%d: %.7lf\n",i,pow(f[m],k));
    }
    return 0;
}