【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 }