第二题过了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

相关推荐

purcoter:虚拟货币预测正确率百分之99,还要找工作干嘛,不早就财富自由了
点赞 评论 收藏
分享
牛客网
牛客企业服务