COGS 1489玩纸牌

%%%http://blog.csdn.net/clover_hxy/article/details/53171234

 1 #include<bits/stdc++.h>
 2 #define LL long long
 3 #define LD long double  
 4 #define  N 100005
 5 using namespace std;
 6 inline int ra()
 7 {
 8     int x=0,f=1; char ch=getchar();
 9     while (ch<'0' || ch>'9') {if (ch=='-') f=-1; ch=getchar();}
10     while (ch>='0' && ch<='9') {x=x*10+ch-'0'; ch=getchar();}
11     return x*f;
12 }
13 double d[105][105];
14 int main()
15 {
16     freopen("expected.in","r",stdin);
17     freopen("expected.out","w",stdout);
18     int T=ra(),cnt=0;
19     while (T--)
20     {
21         int a,b,n;
22         scanf("%d/%d%d",&a,&b,&n);
23         double p=(double)a/b;
24         memset(d,0,sizeof(d));
25         d[0][0]=1.0; d[0][1]=0.0;
26         for (int i=1; i<=n; i++)
27             for (int j=0; j*b<=a*i; j++)
28             {
29                 d[i][j]+=d[i-1][j]*(1-p);
30                 if (j) d[i][j]+=d[i-1][j-1]*p;
31             }
32         double Q=0.0;
33         for (int j=0; j*b<=a*n; j++)
34             Q+=d[n][j];
35         int ans=floor(1.0/Q);
36         printf("Case #%d: %d\n",++cnt,ans);
37     }
38     return 0;
39 }

 

posted @ 2017-02-06 11:18  ws_ccd  阅读(137)  评论(0编辑  收藏  举报