动态规划--小明通过考试
来源:互联网 发布:python 进程间通信 编辑:程序博客网 时间:2024/04/27 23:28
京东实习生笔试试题
【题目描述】小明同学要参加一场考试,考试一共有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:根据前i-1道题做对j或j-1道题来递推出1前i道题做对j道题的概率,写出状态转移方程即可求解。
源代码如下:
#include#include #include using namespace std;const int maxn = 100;double dp[maxn][maxn]; //dp[i][j]表示状态前i个题目对j个的概率,挨个dp即可int a[maxn+1];int main(){ int n; while(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 - a[i])/100.0; for(int j=1; j<=n; j++){ dp[i][j] = dp[i-1][j]*(100 - a[i])/100.0 + dp[i-1][j-1]*a[i]/100.0; } } double ans = 0; int start = ceil(0.6*n); for(int i=start; i<=n; i++) ans += dp[n][i]; cout << setiosflags(ios::fixed) << setprecision(5); cout << ans << endl; } return 0;}
阅读全文
0 0
- 动态规划--小明通过考试
- 动态规划:考试通过概率
- 动态规划-通过考试(京东实习生笔试题)
- 动态规划考试test20170429
- 动态规划考试2(test20170401)
- 动态规划-开心的小明
- 开心的小明-动态规划算法
- 动态规划小题目;
- 动态规划小例子
- 动态规划小入门
- 动态规划小示例
- 动态规划小练习
- 动态规划小入门
- 看动态规划小感
- 开心的小明——动态规划
- NYOJ49 开心的小明 【动态规划】+【01背包】
- NYOJ--49(动态规划)-题目----------------------------- 开心的小明
- NYOJ-49-开心的小明(动态规划)
- Java并发编程艺术 4 Java并发编程基础
- sizeof
- How to Install IPython,IPython notebook and Anaconda
- Uva11178计算几何
- mtk 新sensor框架
- 动态规划--小明通过考试
- MySql 5.7.19 源代码安装 for ubuntu 16.04
- 设计模式-抽象工厂模式
- IO多路复用之select、poll、epoll详解
- 一些关于进程调度的小点总结
- 【ESP32】M5Stack ESP32 套件初体验——开发环境脱坑记
- java webservice
- Oracle触发器用法实例详解
- SpringMVC