uva 11427 Expect the Expected 概率dp求期望

来源:互联网 发布:安卓post提交数据 编辑:程序博客网 时间:2024/05/22 02:07

题目链接


#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>using namespace std;const int MAXN=100+50;int n,a,b;double p;double dp[MAXN][MAXN];int main(){    //freopen("text.txt","r",stdin);    int T,kase=0;    scanf("%d",&T);    while(T--)    {        kase++;        scanf("%d/%d%d",&a,&b,&n);        p=a*1.0/b;        memset(dp,0,sizeof(dp));        dp[0][0]=1.0;        for(int i=1;i<=n;i++)            for(int j=0;j*b<=a*i;j++)            {                if(j==0)                    dp[i][j]=dp[i-1][j]*(1-p);                else                    dp[i][j]=dp[i-1][j]*(1-p)+dp[i-1][j-1]*p;            }        double Q=0.0;        for(int i=0;i*b<=n*a;i++)            Q+=dp[n][i];        printf("Case #%d: %d\n",kase,(int)(1/Q));    }    return 0;}


0 0