题意:有m到题,t个队伍,给出第 i 支队作出 第 j 道题的概率 Pij。求每个队至少作出一道题,作出最多的那个队伍至少作出 n 道题的概率。

  dp[i][j][k]表示第 i 支队前 j 道题作出 k 道的概率,dp[i][j][k] = dp[i][j-1][k]*(1-p[i][j])+dp[i][j-1][k-1]*p[i][j].

  s[i][k]表示第 i 支队作出题目个数 0~k 的概率。

  s[i][k]=dp[i][m][0]+dp[i][m][1]+...+dp[i][m][k].

  s[i][m]-s[i][0]表示第 i 支队至少作出一道题的概率,s[i][n-1]-s[i][0]表示第 i 支队作出题目个数 为1~n-1的概率。

 

#include<stdio.h>
#include<string.h>int m,t,n;
double dp[1001][35][35],s[1001][35],p[1001][35];
int main()
{while(scanf("%d%d%d",&m,&t,&n) && (m+t+n)){memset(dp,0,sizeof(dp));memset(s,0,sizeof(s));for(int i=1;i<=t;i++)for(int j=1;j<=m;j++)scanf("%lf",&p[i][j]);for(int i=1;i<=t;i++)   dp[i][0][0]=1.0;for(int i=1;i<=t;i++){for(int j=1;j<=m;j++)dp[i][j][0]=dp[i][j-1][0]*(1-p[i][j]);for(int j=1;j<=m;j++)for(int k=1;k<=j;k++)dp[i][j][k]=dp[i][j-1][k-1]*p[i][j]+dp[i][j-1][k]*(1-p[i][j]);s[i][0]=dp[i][m][0];for(int k=1;k<=m;k++)s[i][k]=s[i][k-1]+dp[i][m][k];}double p1=1.0;for(int i=1;i<=t;i++)p1*=(s[i][m]-s[i][0]);double p2=1.0;for(int i=1;i<=t;i++)p2*=(s[i][n-1]-s[i][0]);printf("%.3lf\n",p1-p2);}return 0;
}

转载于:https://www.cnblogs.com/yongren1zu/p/3250820.html

poj 2151 Check the difficulty of problems相关推荐

  1. POJ 2151 Check the difficulty of problems (概率dp)

    题意:给出m.t.n,接着给出t行m列,表示第i个队伍解决第j题的概率. 现在让你求:每个队伍都至少解出1题,且解出题目最多的队伍至少要解出n道题的概率是多少? 思路:求补集. 即所有队伍都解出题目的 ...

  2. Check the difficulty of problems (概率dp求概率)

    Check the difficulty of problems POJ - 2151 大致题意: m个问题,t个队伍,要求冠军队伍至少解决n个问题,给出每个队伍解决每个问题的概率 求每一个队至少解决 ...

  3. 【POJ - 2151】Check the difficulty of problems(概率dp)

    ​​​​题干: Organizing a programming contest is not an easy job. To avoid making the problems too diffic ...

  4. Check the difficulty of problems - poj 2151 (概率+DP)

    有 T(1<T<=1000) 支队伍和 M(0<M<=30) 个题目,已知每支队伍 i 解决每道题目 j 的的概率 p[i][j],现在问:每支队伍至少解决一道题,且解题最多的 ...

  5. POJ-2151 Check the difficulty of problems 概率DP

    题目链接:http://poj.org/problem?id=2151 组合数做肯定超时,容易看出是DP.f[i][j]表示某个队的前j个题目做出i个题目的概率,则f[i][j]=f[i][j-1]* ...

  6. [POJ2151]Check the difficulty of problems(概率DP)

    传送门 每个队之间是独立的 f[i][j]表示当前队伍前i个题答对j个的概率 满足条件的概率 == 全部方案(除去答对0)的概率 - 不满足条件的概率(每个队伍答对1~n-1) #include &l ...

  7. 【原创】概率DP总结 by kuangbin

    概率DP主要用于求解期望.概率等题目. 转移方程有时候比较灵活. 一般求概率是正推,求期望是逆推.通过题目可以体会到这点. 首先先推荐几篇参考的论文: <信息学竞赛中概率问题求解初探> & ...

  8. UVa在线比赛单题汇总-----DP专题

    动态规划基础 例题 LA 3882 UVa 3882 - And Then There Was One 递推------------无力orz UVa 10635 10635 - Prince and ...

  9. POJ前面的题目算法思路【转】

    1000 A+B Problem 送分题 49% 2005-5-7 1001 Exponentiation 高精度 85% 2005-5-7 1002 487-3279 n/a 90% 2005-5- ...

最新文章

  1. 后端 消息 转发_小程序转发探索示例
  2. 定位AI交互技术服务商,声智科技完成近亿元A轮融资,将拓展安防、汽车等新场景
  3. 在项目中添加引用的意思
  4. 《从零开始学Swift》学习笔记(Day 33)——属性观察者
  5. 应用上下文webApplicationContext
  6. c语言mysql自动重连接_c++操作mysql数据库
  7. 多线程编程(3): 使用互斥锁同步线程
  8. centos7网卡配置文件详解与固定服务器ip
  9. oracle建表插数据
  10. 波特率和比特率的区分
  11. 一、云计算-云平台-国产-华为-FusionSphere+HCIE Cloud相关知识点+笔试题库
  12. 7-32 哥尼斯堡的“七桥问题” (25 分)(思路+详解+题目分析)两种做法任选其一
  13. 简单的数据库连接测试方法
  14. 危骆邦油邦快讯|一分钟看懂山东地炼成品油报价
  15. 亚马逊运营推热新品的一些技巧分享值得卖家们收藏!
  16. 光速入门Docker 和 Kubernetes,一起学~
  17. 简单的汇率转换工具---初试AJAX
  18. Excel-VBA:“银行家舍入” 与“国际标准的四舍五入”
  19. 眼动在旅游研究中有哪些运用?
  20. 斐讯n1刷linux服务器,斐讯N1刷Ubuntu系统配置SMB

热门文章

  1. UDP客户端向服务器发送文件,基于UDP协议的客户端与服务器端的文件传送
  2. hello world的Java代码,Java语言实现hello world代码
  3. odp.net连接oracle9i 出错解决_机电工程老出错?机电安装质量通病防治手册,解决常见多发问题...
  4. java maven 没有target_Maven最全知识点总结 可以收藏啦
  5. creating a tensor from a list of numpy.ndarray is extremely slow Please consider converting the lis
  6. Pytorch教程(十六):FashionMNIST数据集DataSet DataLoader
  7. 推荐15个让新手爱不释手的Python高级库
  8. 就是这么流弊!三行Python代码,让数据处理速度提高2到6倍
  9. 什么叫计算机网络阻塞,计算机网络中的“线端阻塞”释义
  10. 向腾讯云windows服务器传输文件,如何上传本地文件到腾讯云Windows服务器上?