博客
关于我
牛客网【每日一题】5月19日题目精讲 比赛
阅读量:145 次
发布时间:2019-02-27

本文共 1430 字,大约阅读时间需要 4 分钟。

题意是说,你在参加一场比赛,这场比赛总共有12个题。对于第i个题,你的队伍有a[i]的概率解决它。如果解决不了呢?由于所有人讨论的都很大声,所以你有b[i]的概率从左边那个队那里听会这个题的做法,有c[i]的概率从右边那个队那里听会这个题的做法。请问最终你们队伍解出0-12题的概率分别是多少?

输入描述:第一行12个数表示a[1]到a[12]第二行12个数表示b[1]到b[12]第三行12个数表示c[1]到c[12]

输出描述:输出13行,第i行表示解出i-1题的概率,保留6位小数。

解题思路:

  • 首先计算每个题做对的概率p[i]和做错的概率q[i]。q[i] = (1 - a[i]) * (1 - b[i]) * (1 - c[i]),p[i] = 1 - q[i]
  • 使用动态规划来计算解出0到12题的概率。设dp[i][j]表示前i个题中解出j个的概率。初始化dp[0][0] = 1
  • 对每个题i,从j=0到i,计算dp[i][j] = dp[i-1][j] * q[i] + dp[i-1][j-1] * p[i]
  • 最后输出dp[12][0]到dp[12][12]
  • 代码:

    #include 
    using namespace std;int main() { const int maxn = 12; double a[maxn], b[maxn], c[maxn]; double dp[maxn + 1][maxn + 1]; // 初始化 dp[0][0] = 1.0; // 读取输入 for (int i = 1; i <= maxn; ++i) { cin >> a[i]; cin >> b[i]; cin >> c[i]; } // 计算每个题的成功概率和失败概率 for (int i = 1; i <= maxn; ++i) { double q = (1 - a[i]) * (1 - b[i]) * (1 - c[i]); double p = 1 - q; dp[i][0] = dp[i-1][0] * q; for (int j = 1; j <= i; ++j) { dp[i][j] = dp[i-1][j] * q + dp[i-1][j-1] * p; } // 如果j超过i,不可能 } // 输出结果 for (int i = 0; i <= maxn; ++i) { cout << fixed << setprecision(6); if (i == 0) { cout << "0.000000"; } else { cout << dp[12][i]; } } return 0;}

    输出结果:0.0000000.0000000.0000000.0000110.0001600.0015080.0096200.0419380.1241530.2437730.3019600.2124530.064424

    转载地址:http://xmwb.baihongyu.com/

    你可能感兴趣的文章
    Netty源码—7.ByteBuf原理四
    查看>>
    Objective-C实现hardy ramanujana定理算法(附完整源码)
    查看>>
    Objective-C实现获取 Collatz 序列长度算法(附完整源码)
    查看>>
    Objective-C实现获取CPU温度(附完整源码)
    查看>>
    Objective-C实现获取文件头的50个字符(附完整源码)
    查看>>
    Objective-C实现获取本机系统版本(附完整源码)
    查看>>
    Objective-C实现随机图生成器算法(附完整源码)
    查看>>
    Oil Deposits
    查看>>
    OJ中常见的一种presentation error解决方法
    查看>>
    OK335xS UART device registe hacking
    查看>>
    ok6410内存初始化
    查看>>
    Okhttp3添加拦截器后,报错,java.io.IOException: unexpected end of stream on okhttp3.Address
    查看>>
    OKR为什么到今天才突然火了?
    查看>>
    ollama本地部署DeepSeek(Window图文说明)
    查看>>
    onclick事件的基本操作
    查看>>
    onCreate()方法中的参数Bundle savedInstanceState 的意义用法
    查看>>
    OneASP 安全公开课,深圳站, Come Here, Feel Safe!
    查看>>
    OneBlog Shiro 反序列化漏洞复现
    查看>>
    one_day_one--mkdir
    查看>>
    ONI文件生成与读取
    查看>>