UVA 11021 Tribles

来源:互联网 发布:别墅网络覆盖方案 编辑:程序博客网 时间:2024/06/05 14:25

题目链接

题意:给你K个毛球,每个毛球只能生存一天,但是每个毛球都有pi的概率繁殖i个毛球,问第 m 天后所有毛球死亡的概率。

分析:因为毛球独立,所以考虑一个最后取k次幂即可。所以dp[i]=∑pj*dp[i-1]^j (0<=j

#include<cstdio>#include<cstring>#include<algorithm>using namespace std;double pow(double a,int b){    double res=1;    double base=a;    while(b)    {        if(b&1)        res*=base;        base*=base;        b>>=1;    }    return res;}double dp[1005];double p[1005];int main(void){    int n,k,m;    int cas=1;    int t;    scanf("%d",&t);    while(t--)    {        scanf("%d%d%d",&n,&k,&m);        for(int i=0;i<n;i++)        scanf("%lf",&p[i]);        fill(dp,dp+m+1,0);        dp[0]=0;        dp[1]=p[0];        for(int i=2;i<=m;i++)        {            for(int j=0;j<n;j++)            dp[i]+=pow(dp[i-1],j)*p[j];        }        printf("Case #%d: %.7lf\n",cas++,pow(dp[m],k));    }    return 0;}
0 0
原创粉丝点击