概率与期望
#include<iostream> #include<cstring> #include<cstdio> #include<cmath> using namespace std; inline int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f; } int N,n,k,m; double p[1001],ans[1001]; int main(){ freopen("tribbles.in","r",stdin); freopen("tribbles.out","w",stdout); N=read(); for(int t=1;t<=N;t++){ n=read();k=read();m=read(); for(int i=0;i<n;i++) scanf("%lf",&p[i]); memset(ans,0,sizeof(ans)); ans[m]=p[0]; for(int i=m-1;i>=1;i--){ ans[i]=p[0]; for(int j=1;j<n;j++) ans[i]+=p[j]*pow(ans[i+1],j); } double P=1; for(int i=1;i<=k;i++) P*=ans[1]; printf("Case #%d: %.7lf\n",t,P); } return 0; }