uva10648 概率dp

Posted zzq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uva10648 概率dp相关的知识,希望对你有一定的参考价值。

https://vjudge.net/problem/UVA-10648

  将n个不同小球放入m个不同盒子,放入每个盒子的概率相同,问放完之后仍有空盒子的概率;

  还是太傻- -,可以倒着计算出放完之后没有空盒子的概率,在让1减去就是答案,这样好写一点。

  f[i][j]表示i个球放入m盒子无空盒子的概率,则 f[i][j]=f[i-1][j-1]*((M-j+1)/M)+f[i-1][j]*(j/M);

 

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 #define LL long long
 4 #define qz q.size()
 5 double f[105][105];
 6 int main()
 7 {
 8     int N,M,i,j,k=0;
 9     while(cin>>N&&N!=-1){
10             cin>>M;
11     memset(f,0,sizeof(f));
12     f[0][0]=1;
13     for(i=1;i<=N;++i)
14     {
15         for(j=1;j<=M;++j)
16         {
17             f[i][j]=f[i-1][j-1]*(1.0*(M-j+1)/M)+f[i-1][j]*(1.0*j/M);
18         }
19     }
20     printf("Case %d: %.7f\n",++k,1-f[N][M]);
21     }
22     return 0;
23 }

 

以上是关于uva10648 概率dp的主要内容,如果未能解决你的问题,请参考以下文章

UVa 11468 Substring (AC自动机+概率DP)

UVA11021 Tribles[离散概率 DP]

UVA 10529 - Dumb Bones (概率dp)

UVA10759 Dice Throwing概率+DP

UVA10759 Dice Throwing概率+DP

UVA11427 Expect the Expected 概率dp+全概率公式