本文共 535 字,大约阅读时间需要 1 分钟。
#include#include #include using namespace std;double dp[1005][1005][2];int main(){ int w,b; cin >> w >> b; for(int i = 0;i <= w;i++){ for(int j = 0;j <= b;j++){ if(i) dp[i][j][0] = i*1.0/(i+j); if(j) dp[i][j][0] += j*1.0/(i+j)*dp[i][j-1][1]; if(i>=1&&j>=1) dp[i][j][1] += j*1.0/(i+j)*i*1.0/(i+j-1)*dp[i-1][j-1][0]; if(j >= 2) dp[i][j][1] += j*1.0/(i+j)*(j-1)*1.0/(i+j-1)*dp[i][j-2][0]; } } printf("%.9lf\n",dp[w][b][0]); return 0;}