[京东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)

输出

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

样例输入

4

50 50 50 50

样例输出

0.31250

思路

DP。dp[i][j]表示前i门课程通过j门的概率。则dp[i][j] = dp[i - 1][j - 1] * p[i] + dp[i - 1][j] * (1 - p[i])。

代码

 1 import java.util.Scanner;
 2
 3 public class Main {
 4
 5     public static double solve(double[] p) {
 6         final int n = p.length;
 7         double[][] dp = new double[n + 1][n + 1];
 8         dp[0][0] = 1;
 9         for (int i = 1; i <= n; i++) {
10             for (int j = 0; j <= i; j++) {
11                 if (j == 0) {
12                     dp[i][0] = dp[i - 1][0] * (1 - p[i - 1]);
13                 } else {
14                     dp[i][j] = dp[i - 1][j - 1] * p[i - 1] + dp[i - 1][j] * (1 - p[i - 1]);
15                 }
16             }
17         }
18
19         double ps = 0;
20         for (int i = 0; i <= n; i++) {
21             if (10 * i >= 6 * n) {
22                 ps += dp[n][i];
23             }
24         }
25         return ps;
26     }
27
28     public static void main(String[] args) {
29         Scanner sc = new Scanner(System.in);
30         int n = sc.nextInt();
31         double[] p = new double[n];
32         for (int i = 0; i < n; i++) {
33             p[i] = (double) sc.nextInt() / 100;
34         }
35         System.out.println(String.format("%.5f", solve(p)));
36     }
37 }
时间: 2024-10-09 21:36:54

[京东2017实习生笔试] 通过考试的相关文章

[京东2017实习生笔试] 终结者C

原题: http://exercise.acmcoder.com/online/online_judge_ques?ques_id=4401&konwledgeId=41 时间限制 C/C++语言:1000MS其它语言:3000MS 内存限制 C/C++语言:65536KB其它语言:589824KB 题目描述 收到情报,有批新造的机器人要运输到前线.小C将去破坏机器人的运输.小C将激光炮放置在公路的一旁,等运输车经过的时候发射(假设激光炮一定可以射穿车辆).由于能源有限,激光炮只能发射两次.可以

Legendary Items-微软2017实习生笔试第一题

题目如下: 这道题难点不仅在于正确理解题意,判断递归条件,更在于用数学方法推出解决公式.因为N最大为1百万,而内存只有256MB, 所以暴力递归肯定会超时,超空间. 不过,我才疏学浅,又没有大量时间去深究,所以只写出了暴力递归算法.进一步优化的话,可以考虑P在迭代很久后会变为0这一事实,也许可以进一步节省时空消耗. 下面给出算法,由于我注释写的很详细,这里就不进一步解释了. 1 import java.util.Scanner; 2 public class Main { 3 4 static

DP - tencent2016实习生笔试A

tencent2016实习生笔试A Problem's Link ---------------------------------------------------------------------------- Mean: 给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串.如何删除才能使得回文串最长呢?输出需要删除的字符个数. analyse: 对于这题来说,插入字符和删除字符使其成为回文串,答案是一样的. 首先求s的反串rs,然后对s和rs求最长公共子序列,要删除的字

2017年茂名执业医师考试买答案

2017年茂名执业医师考试买答案[◥██◤唯-Q-Q--12942436◥██◤] 多年助考经验,一次通过,可考后付,实力验证!2017年茂名执业医师考试买答案她想着这些时日的遭遇,简直是她自穿越到这个世界这么些年来最为颠簸流离的一段日子,她简直不知道自己怎么就好端端从一个闲适无比悠闲自在的世家贵女变成了一个流落山林的落难女,唔,还曾遭遇山贼,水匪,被追杀逃亡过一段日子. 陈大夫人柔和的拍拍她,便召了她身后的丫鬟上前,却是她过来时便已让人备了些清淡的莲子燕窝粥,好让安槿醒后用了恢复些元气. 因为

2017年舟山执业医师考试答案

2017年舟山执业医师考试答案[◥██◤唯-Q-Q--12942436◥██◤] 多年助考经验,一次通过,可考后付,实力验证!2017年舟山执业医师考试答案说完还有些怨怪的看了一眼问安槿话的儿子. 且说陈大夫人听了陈二夫人话,便就拉了安槿到自己身边,笑着就跟陈二夫人介绍道:"这是我父亲故人的女儿,因我父亲的这位故人在京都锦华书院任教,她便自幼随了父亲在京都长大,这次她回来岭南探亲,我便接了她在身边住下." 萧烨看她这样的笑,心就忍不住跳起来,又软又甜又涩,握着她的手只觉一片酥麻,他有些

软考类----来自淘米2004实习生笔试

淘米2014实习生笔试,今年是淘米第一年招暑期实习生,笔试好大部分考的是软考的题目啊啊啊啊(劳资后悔当年没考软考刷加权),其他是浅而泛的风格,C++,SQL语句,数据结构(哈夫曼树,二叉查找树,栈后缀表达式,连通无向图),排序算法各种最优最差平均 复杂度-- 下面记一下考到的软考风格的题目,不过估计其他家也不会考(劳资什么时候能过个笔试额,锁定C++不搞JS了) 1.计算机中最适合进行数字加减运算的编码是_补码__,最适合表示浮点数的数字编码是_移码__. A.原码 B.反码 C.补码 D.移码

2014腾讯实习生笔试——蒙特卡洛算法求圆周率

这是2014腾讯实习生笔试(西安,武汉站)的第26题.给出二个函数,让你去理解其含义.答案是:第一个函数式用来产生(a,b)之间的随机小数.第二个函数式用蒙特卡洛概率算法求近似圆周率. 先介绍一下该方法(蒙特卡洛算法): 以 概率和统计理论方法为基础的一种计算方法.将所求解的问题同一定的概率模型相联系,用计算机实现统计模拟或抽样,以获得问题的近似解.比方,给定 x=a ,和 x=b ,你要求某一曲线 f 和这两竖线,及 x 轴围成的面积,你能够起定 y 轴一横线 y=c 当中 c>=f(a) a

2017年护士资格考试50个基础知识考点

1.正常成人安静状态下脉搏为60-100次/分.速脉指脉率每分钟超过100次,生理情况下见于情绪激动.紧张.剧烈体力活动等:病理情况下见于发热.贫血.心力衰竭.休克.心肌炎.甲状腺机能亢进等. 2.发绀主要是由于单位容积血液中还原血红蛋白餐增高而引起的.血液中还原血红蛋白超过50g/L时可出现发绀,常见于口唇.面颊.肢端.甲床.耳廓等.见于先天性心脏病.心肺功能不全和某些中毒等.严重贫血病人如血红蛋白量少于50g/L,即使全部血红蛋白处于还原状态,也不出现发绀. 3.有机磷农药中毒者呼吸有大蒜味

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

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