第二题过了91%  int main() {     int n = 0, m = 0; // red blue     cin >> n >> m;     vector<vector<double>> dp(n + 1, vector<double>(m + 1, 0));     for (int j = 0; j <= m; ++j) {         dp[0][j] = 0;     }     for (int i = 0; i <= n; ++i) {         dp[i][0] = 1;         dp[i][1] = i / (i + 1.0);     }     for (int i = 1; i <= n; ++i) {         for (int j = 2; j <= m; ++j) {             double ns = i, ms = j;             double all = i + j;             double res = (ns) / all;             if (j >= 3) {                 dp[i][j] = res + (ms / all) * (ms - 1) / (all - 1) *                        ((ms - 2) / (all - 2) * dp[i][j - 3] + (ns / (all - 2)) * dp[i - 1][j - 2]);             } else if (j == 2) {                 dp[i][j] = res + (ms / all) * ((ms - 1) / (all - 1)) * (ns / (all - 2)) * dp[i - 1][j - 2];             }         }     }     cout << setiosflags(ios::fixed) << setprecision(5) << dp[n][m];     return 0; }
点赞 1

相关推荐

安静的鲸鱼offer...:神仙级别hr,可遇不可求,甚至他可能也是突然有感而发。只能说遇上是件幸事。
秋招开始捡漏了吗
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务