uestc 1135 邱老师看电影

邱老师看电影

Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others)
 

一天邱老师心血来潮想去看电影,但是邱老师的妹子想去逛街,他们谁也没有办法说服对方,于是准备来玩一个游戏来决定听谁的。

邱老师找来w只白鼠和b只黑鼠,邱老师和妹子轮流从袋子里面抓老鼠,谁先抓到白色老鼠谁就赢。

但是有酱神在旁边捣乱,邱老师每抓一只老鼠出来,酱神就偷偷的也从里面抓一只出来,这3个人抓出来的老鼠都是随机的。

如果袋子里没有白老鼠,且之前没有人拿到白老鼠的时候,邱老师胜。

为了体现绅士精神,邱老师让妹子先抓,那么妹子赢的概率是多少呐?

Input

只有两个数字 w和b w<=1000 b<=1000

Output

输出妹子赢的概率 保留9位小数

Sample input and output

Sample InputSample Output
1 3
0.500000000
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 
 4 double dp[2002][2002];
 5 
 6 double dfs(int w,int b){
 7     if(w==0) return 0;
 8     if(b==0&&w!=0) return 1;
 9     if(dp[w][b]>=0) return dp[w][b];
10     dp[w][b]=w*1.0/(w+b);//妹子取了白
11     if(b>=2){
12         double tb=b*1.0/(w+b)*(b-1)*1.0/(w+b-1);//妹子,邱老师取黑
13         if(b>=3){
14             dp[w][b]+=tb*dfs(w,b-3)*(b-2)*1.0/(w+b-2);//酱神取黑
15         }
16         if(w>=1){
17             dp[w][b]+=tb*dfs(w-1,b-2)*w*1.0/(w+b-2);//酱神取白
18         }
19     }
20     return dp[w][b];
21 }
22 
23 int main(){
24     int n,m;
25     memset(dp,-1,sizeof(dp));
26     cin>>n>>m;
27     printf("%.9lf\n",dfs(n,m));
28 }

 

posted on 2017-07-23 22:27  hhhhx  阅读(162)  评论(0编辑  收藏  举报

导航