poj2151概率dp
2016-02-28 17:02
323 查看
题目大意:m道题,t个队伍,n个最少题数,给出t*m的概率,表示队伍做出题的概率。求所有队伍都至少出1题,且至少有一个队伍出n道题以上概率。
参考:点击打开链接
代码:
参考:点击打开链接
代码:
#include <iostream> #include <cstdio> #include <string> #include <cstring> #include <fstream> #include <algorithm> #include <cmath> #include <queue> #include <stack> #include <vector> #include <map> #include <set> #include <iomanip> using namespace std; //#pragma comment(linker, "/STACK:102400000,102400000") #define maxn 70 #define MOD 1000000007 #define mem(a , b) memset(a , b , sizeof(a)) #define LL long long #define INF 100000000 int m , n , t; double dp[35][35]; double sum[3]; int main() { double p; while(scanf("%d %d %d" , &m , &t , &n) != EOF && (m || n || t)) { double ans1 = 1.0 , ans2 = 1.0; for(int i = 0 ; i < t ; i ++) { dp[0][0] = 1; for(int j = 1 ; j <= m ; j ++) { scanf("%lf" , &p); for(int k = 0 ; k <= j && k<= m ; k ++) dp[k][j] = dp[k][j-1]*(1-p) + (k?dp[k-1][j-1]*p:0); } sum[0] = dp[0][m]; sum[1] = 0.0; for(int j = 1 ; j < n ; j ++) sum[1] += dp[j][m]; ans1 *= (1-sum[0]); ans2 *= sum[1]; } printf("%.3lf\n" , ans1 - ans2); } return 0; }
相关文章推荐
- 详解高速神器python脚步打包android apk,超级快!!(打包系列教程之六)
- 8. String to Integer (atoi)
- UICollectionView 简单实用
- Pandas分组统计函数:groupby、pivot_table及crosstab
- java反射学习笔记之 动态加载类
- HDOJ 1033 Edge
- 334. Increasing Triplet Subsequence
- Django架设blog步骤(转)
- C++有符号和无符号数的转换
- JDK新特性
- Powerful Calculator(上海交大上机考试)
- HTTP协议
- Redis-发布与订阅
- Linux精讲——增加和删除用户
- 求k分位数的k-1个顺序统计量
- 使用Python做科学计算初探(转)
- 动态更换view类的背景----StateListDrawable的应用
- ios 第三方qq授权登陆,第一次登陆后,再次登陆,失效
- SOUI入门
- C++ wchar_t 输出中文问题