/*
不妨把王妃取一次和龙取一次作为一次操作
有三种情况
1.王妃取到w
2.王妃取到b龙取w,b
3.王妃取到b龙取b,b
*/
#include<bits/stdc++.h>
using namespace std;
double e[1010][1010];
int main(){
int w,b;
scanf("%d %d",&w,&b);
for(int i=1;i<=w;i++)e[i][0]=1;
for(int i=0;i<=b;i++)e[0][i]=0;
for(int i=1;i<=w;i++){
for(int j=1;j<=b;j++){
e[i][j]=i*1.0/(i+j);//直接成功
if(j>=2)e[i][j]+=1.0*j/(i+j)*(j-1)/(i+j-1)*i/(i+j-2)*e[i-1][j-2];//一白一黑
if(j>=3)e[i][j]+=j*1.0/(i+j)*(j-1)/(i+j-1)*(j-2)/(i+j-2)*e[i][j-3];//全黑
}
}printf("%.9lf\n",e[w][b]);
}
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交