UVA 11427 Expect the Expected(DP+概率)

时间:2022-09-19 06:17:35

 

链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=35396

 

【思路】

 

  DP+概率

  见白书。

 

【代码】

 

 1 #include<cstdio>
 2 #include<cstring>
 3 using namespace std;
 4 
 5 const int N = 100+10;
 6 
 7 int n,a,b;
 8 double f[N][N];
 9 
10 int main() {
11     int T,kase=0;
12     scanf("%d",&T);
13     while(T--) {
14         scanf("%d/%d%d",&a,&b,&n);
15         double p=(double)a/b;
16         memset(f,0,sizeof(f));
17         f[0][0]=1;
18         for(int i=1;i<=n;i++)
19           for(int j=0;j*b<=a*i;j++) {
20             f[i][j]=f[i-1][j]*(1-p);
21             if(j) f[i][j] += f[i-1][j-1]*p;
22         }
23         double Q=0;
24         for(int j=0;j*b<=a*n;j++) Q += f[n][j];
25         printf("Case #%d: %d\n",++kase,(int)(1/Q));
26     }
27     return 0;
28 }