1. 程式人生 > >uestc 1135 邱老師看電影

uestc 1135 邱老師看電影

iso esp width 之前 memset 老鼠 -1 red ()

邱老師看電影

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 }

uestc 1135 邱老師看電影