设f[i][j]表示剩i张R,j张B的期望最大收益。
#include <bits/stdc++.h>
using namespace std;
int n,m;
double f[2][5100];
int main()
{
//freopen("tt.in","r",stdin);
scanf("%d%d",&n,&m);
for(int i=0;i<=n;i++)
for(int j=0;j<=m;j++)
{
double t=0;
if(i)t+=(f[~i&1][j]+1)*i/(i+j);
if(j)t+=(f[i&1][j-1]-1)*j/(i+j);
f[i&1][j]=max(t,0.0);
}
printf("%.6lf\n",f[n&1][m]-5e-7);
return 0;
}