爱奇艺第二题代码,求第一题思路

第二题代码:
public class Main {
    public static void main(String[] args) {
        Scanner cin = new Scanner(System.in);
        String num = cin.nextLine();
        String[] nums = num.split(" ");
        int n = Integer.parseInt(nums[0]); //红球数量
        int m = Integer.parseInt(nums[1]); //蓝球数量
        double res = process(n, m);
        System.out.printf("%.5f", res);
    }

    public static double process(int n, int m){
        double[][] dp = new double[n + 1][m + 1];
        for (int i = 1; i <= n; i++) {
            dp[i][0] = 1;
        }
        for (int i = 0; i <= m; i++) {
            dp[0][i] = 0;
        }
        dp[1][1] = 0.5;
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= m; j++) {
                if (i + j < 3 || j < 2){
                    dp[i][j] = (double) i / (i + j);
                }else if (j < 3){
                    dp[i][j] = (double) i / (i + j) +
                            (double) j / (i + j) * (double)(j - 1) / (i + j - 1) * (double)i / (i + j - 2) * dp[i - 1][j - 2];
                }else{
                    dp[i][j] = (double) i / (i + j) +
                            (double) j / (i + j) * (double)(j - 1) / (i + j - 1) * (double)(j - 2) / (i + j - 2) * dp[i][j - 3] +
                            (double) j / (i + j) * (double)(j - 1) / (i + j - 1) * (double)i / (i + j - 2) * dp[i - 1][j - 2];
                }
            }
        }
        return dp[n][m];
    }
}
第一题求个思路啊,刚开始我以为是子序列的问题,想了半天还是一团乱麻,现在看到1000000007就头疼#爱奇艺##题解#
全部评论
leetcode903
点赞 回复 分享
发布于 2019-09-08 17:34

相关推荐

04-02 16:49
门头沟学院 Java
_bloodstream_:我也面了科大讯飞,主管面的时候听说急招人优先考虑能尽快实习的,我说忙毕设,后面就一直没消息了
点赞 评论 收藏
分享
评论
1
4
分享

创作者周榜

更多
牛客网
牛客企业服务