本文主要是介绍soj2179Problem G:你是个好人,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
概率dp,第一次接触概率dp,。。。其实学了dp之后应该有了这种思想的。。。
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int MAXN=105,MAXM=2005;double dp[MAXM][MAXN];int main()
{int T,n,m;scanf("%d",&T);while(T--){scanf("%d %d",&n,&m);if(m==0){printf("%.6lf\n",0.0);continue;}for(int i=0;i<MAXM;i++){for(int j=0;j<MAXN;j++)dp[i][j]=0.0;}dp[1][1]=1;for(int i=2;i<=m;i++){for(int j=1;j<=n;j++)dp[i][j]=(i>=j?(dp[i-1][j]*j/n+dp[i-1][j-1]*(n-j+1)/n):0.0);}printf("%.6lf\n",dp[m][n]);}return 0;
}
这篇关于soj2179Problem G:你是个好人的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!