京东--通过考试

小明同学要参加一场考试,考试一共有n道题目,小明必须做对至少60%的题目才能通过考试。考试结束后,小明估算出每题做对的概率,p1,p2,...,pn。你能帮他算出他通过考试的概率吗?

输入:

输入第一行一个数n(1<=n<=100),表示题目的个数。第二行n个整数,p1,p2,...,pn。表示小明有pi%的概率做对第i题。(0<=pi<=100)

输出:

小明通过考试的概率,最后结果四舍五入,保留小数点后五位。

样例输入

4

50 50 50 50

样例输出

0.31250

因此,可以形成表格:

这道题的基本思想就是用动态规划来解决:f(i,j)表示i道题中作对j道题中的概率。

f(1,0),f(2,0),f(3,0),f(4,0) 可有概率知识算得,填入表中;

f(1,1)=f(0,0)*Pi+f(0,1)*(1-Pi)    1道题中作对1道的概率:0道题中做对0道的概率*这道题作对的概率+0道题中做对1道的概率*这道题没作对的概率

f(2,1)=f(1,0)*Pi+f(1,1)*(1-Pi)    2道题中作对1道的概率:1道题中做对0道的概率*这道题作对的概率+1道题中做对1道的概率*这道题没作对的概率

f(2,2)=f(1,1)*Pi+f(1,2)*(1-Pi)    2道题中作对2道的概率:1道题中做对1道的概率*这道题作对的概率+1道题中做对2道的概率*这道题没作对的概率

  .

  .

  .

f(4,4)=f(3,3)*Pi+f(3,4)*(1-Pi)    4道题中作对4道的概率:3道题中做对3道的概率*这道题作对的概率+3道题中做对4道的概率*这道题没作对的概率
 
  具体实现代码:

#include <bits/stdc++.h>
#define maxn 109
using namespace std;
int n,a[maxn];
double dp[maxn][maxn];
int main(){
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>a[i];

    dp[0][0]=1;
    for(int i=1;i<=n;i++)  {
        dp[i][0]=dp[i-1][0]*(100.0-a[i])/100; //这里就是计算i道题作对0道的概率
        for(int j=1;j<=i;j++)
        {
            dp[i][j]=dp[i-1][j]*(100.0-a[i])/100+dp[i-1][j-1]*1.0*a[i]/100;
        }
    }
    int low=(3*n+4)/5;
    double ans=0;
    for(int i=low;i<=n;i++)
    {
        ans+=dp[n][i];
    }
    cout.setf(ios::fixed);
    cout <<fixed<< setprecision(5) << ans <<endl;

    return 0;
}
时间: 2024-10-13 23:53:37

京东--通过考试的相关文章

[京东2017实习生笔试] 通过考试

时间限制C/C++语言:1000MS其它语言:3000MS 内存限制C/C++语言:65536KB其它语言:589824KB 题目描述 小明同学要参加一场考试,考试一共有n道题目,小明必须做对至少60%的题目才能通过考试.考试结束后,小明估算出每题做对的概率,p1,p2,...,pn.你能帮他算出他通过考试的概率吗? 输入 输入第一行一个数n(1<=n<=100),表示题目的个数.第二行n个整数,p1,p2,...,pn.表示小明有pi%的概率做对第i题.(0<=pi<=100)

京东-2017-春招实习-通过考试

感谢holy_hap大神的思路,转载:http://blog.csdn.net/u011746554/article/details/70233552 题目描述 小明同学要参加一场考试,考试一共有n道题目,小明必须做对至少60%的题目才能通过考试.考试结束后,小明估算出每题做对的概率,p1,p2,-,pn.你能帮他算出他通过考试的概率吗? 输入 输入第一行一个数n(1<=n<=100),表示题目的个数.第二行n个整数,p1,p2,-,pn.表示小明有pi%的概率做对第i题.(0<=pi&

京东笔试---通过考试(DP)

题目描述      小明同学要参加一场考试,考试一共有n道题目,小明必须作对至少60%的题目才能通过考试.考试结束后,小明估算出每题作对的概率,p1,p2,...,pn,你能帮他算出他通过考试的概率吗? 输入 输入第一行一个数n(1<=n<=100),表示题目的个数,第二行n个整数,p1,p2,...,pn,表示小明有pi%的概率作对第i题.(0<=pi<=100) 输出     小明通过考试的概率,最后结果四舍五入,保留小数点后五位. 样例输入 4 50 50 50 50 样例输

京东618:Docker扛大旗,弹性伸缩成重点

转载:http://www.infoq.com/cn/news/2015/06/jd-618-docker?utm_source=infoq&utm_medium=popular_widget&utm_campaign=popular_content_list&utm_content=homepage 不知不觉中,年中的618和年终的11.11已经成为中国电商的两大促销日,当然,这两天也是一年中系统访问压力最大的两天.对于京东而言,618更是这一年中最大的一次考试,考点是系统的扩展

京东商城分类导航

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>京东商城网站导航</title> <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/1.10.2/jquery.min.js&quo

《信息检索》第一期期末考试

爱课程网携手云课堂打造的顶尖高校在线学习平台 我的云课堂 爱课程网 中国大学MOOC 课程 学校 你好,imoocRen 搜索 信息检索 黄如花 公告 评分标准 课件 测验与作业 考试 讨论区 分享到 帮助中心 <信息检索>第一期期末考试  返回考试列表 本次得分为:28.00/30.00, 本次测试的提交时间为:2014-12-04. 1 ()是高校或科研机构的毕业生为获取学位而撰写的. (单选2分) 得分/总分 A. 学位论文  2.00 /2.00 B. 科技报告 C. 政府出版物

模型如何京东培训6万人

京东商城,拥有6万员工,当中8成是基层蓝领员工.怎样培训这种员工群体? 移动互联网时代,该怎样利用互联网思维开创人才培养新模式? 有两组数据能够印证京东的变化:过去我们用60%或很多其它的时间为管理者服务,开发他们喜欢的课程;现在,我们对管理者的服务可能仅仅须要20%的精力,而把很多其它的时间.精力.力量放到了员工上. 这就要求我们对员工的服务必须接地气,否则员工不买账,我们的工作就没有价值.京东眼下有6万多名员工,有上千名的中高层,仅培训800名经理层就用了4个月的时间,费时费力,有时大家还没

典范——京东怎样培训6万员工?

京东商城,拥有6万员工,其中8成是基层蓝领员工.如何培训这样的员工群体? 移动互联网时代,该如何利用互联网思维开创人才培养新模式? 有两组数据可以印证京东的变化:过去我们用60%或更多的时间为管理者服务,开发他们喜欢的课程;如今,我们对管理者的服务可能只需要20%的精力,而把更多的时间.精力.力量放到了员工上. 这就要求我们对员工的服务必须接地气,否则员工不买账,我们的工作就没有价值.京东目前有6万多名员工,有上千名的中高层,仅培训800名经理层就用了4个月的时间,费时费力,有时大家还没空参加,

京东618:Docker扛大旗,弹性伸缩成重点 (2015-06-23)

不知不觉中,年中的618和年终的11.11已经成为中国电商的两大促销日,当然,这两天也是一年中系统访问压力最大的两天.对于京东而言,618更是这一年中最大的一次考试,考点是系统的扩展性.稳定性.容灾能力.运维能力.紧急故障处理能力.弹性计算云是京东2015年研发部战略项目,它基于Docker简化了应用的部署和扩容,提高了系统的伸缩能力.目前京东的图片系统.单品页.频道页.风控系统.缓存.登录.团购.O2O.无线.拍拍等业务都已经运行在弹性计算云系统中. 过去的一段时间里,弹性计算云项目在京东内部