题解:
很简单的期望dp
转移方程显然,max一个0就可以了
#include <bits/stdc++.h> using namespace std; #define rep(i,h,t) for (int i=h;i<=t;i++) #define dep(i,t,h) for (int i=t;i>=h;i--) int a,b; double f[2][6000]; int main() { freopen("1.in","r",stdin); freopen("1.out","w",stdout); cin>>a>>b; rep(i,1,a) rep(j,0,b) { f[i&1][j]=(f[(i&1)^1][j]+1)*i/(i+j); if (j) f[i&1][j]+=(f[i&1][j-1]-1)*j/(i+j); if (f[i&1][j]<0) f[i&1][j]=0; } printf("%.6f",f[a&1][b]-0.0000005); return 0; }