仰慕ws_fqk神犇
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<queue>
#include<vector>
#include<set>
#include<map>
#define MX 1e9
#define lowbit(x) (x&(-x))
using namespace std;
double f[2][5005];
int n,m;
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
for(int j=0;j<=m;j++)
{
if(!j)f[i&1][j]=i;
else f[i&1][j]=max(0.0,(double)i/(i+j)*(1+f[(i&1)^1][j])+(double)j/(i+j)*(-1+f[i&1][j-1]));
}
printf("%.6lf",f[n&1][m]-5e-7);
return 0;
}