【UVA】【11427】玩纸牌

数学期望

  也是刘汝佳老师白书上的例题……感觉思路很神奇啊

 1 //UVA 11427
 2 #include<cmath>
 3 #include<cstdio>
 4 #include<cstring>
 5 #define rep(i,n) for(int i=0;i<n;++i)
 6 #define F(i,j,n) for(int i=j;i<=n;++i)
 7 double d[105][105],p;
 8 int main(){
 9     int t,n,a,b;
10     scanf("%d",&t);
11     F(cs,1,t){
12         scanf("%d/%d%d",&a,&b,&n);
13         p=(double)a/b;
14         memset(d,0,sizeof d);
15         d[0][0]=1.0; d[0][1]=0.0;
16         F(i,1,n)
17             for(int j=0;j*b<=a*i;j++){
18                 d[i][j]=d[i-1][j]*(1-p);
19                 if (j) d[i][j]+=d[i-1][j-1]*p;
20             }
21         double Q=0.0;
22         for(int j=0;j*b<=a*n;j++) Q+=d[n][j];
23         printf("Case #%d: %d\n",cs,(int)(1/Q));
24     }
25     return 0;
26 }
View Code

 

posted @ 2015-02-22 22:47  Tunix  阅读(234)  评论(0编辑  收藏  举报