clay17与帝垣琼玉(摸鱼爽版)

时间限制: 1000 ms 内存限制: 65536 kb
总通过人数: 33 总提交人数: 38
Special Judge

题目描述

clay17闲来无事和青雀一起摸鱼。

桌面上现有A张“摸鱼牌”和B张“普通牌”, 随机打乱顺序后放在桌面上,开始一张一张地翻牌。

翻到摸鱼牌,青雀可以安全的摸鱼,快乐指数$+1$;

翻到普通牌,青雀则会担心这是符玄要来抓自己的不好兆头,快乐指数$-1$。

青雀最初快乐指数为$0$,并且在翻牌过程中可以随时停止翻牌,青雀在最优策略下平均快乐指数$S$是多少。

与国庆赛不同的是,这个题会有$T$组不同的局面需要你来处理。

输入

第一行一个数$T$($T\le10000$)

接下来$T$行,每行两个数字$A$,$B$($A,B\le1000$)

输出

输出$T$行,每行一个数表示$S$的值,保留六位小数

输入样例

1
10 10

输出样例

1.607228

BUG 代码

#include <stdio.h>
#include <math.h>

#define MR 1005
#define MB 1005

#define E 1e-5
#define jz -1e10
int R,B,T,f;
double dp[MR][MB];

double dfs(int r,int b)
{
    double xr=r/(r+b);
    dp[r-1][b]=dfs(r-1,b);
    double xb=b/(r+b);
    dp[r][b-1]=dfs(r,b-1);
    dp[r][b]=(dp[r-1][b]+1)*xr+(dp[r][b-1]-1)*xb;
    if(dp[r][b]<0) dp[r][b]=0;
    return dp[r][b];
}

int main() {
    scanf("%d",&T);
    while(T--){
        scanf("%d%d",&R,&B);
        for(int i=0;i<=R;i++)
            for(int j=0;j<=B;j++)
                dp[i][j]=jz;
        for(int i=1;i<=R;i++) dp[i][0]=i;
        for(int i=0;i<=B;i++) dp[0][i]=0;
        printf("%.6f\n",dfs(R,B));
    }

    return 0;
}

Author: clay17

相关推荐