博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ2157 Check the difficulty of problems 概率DP
阅读量:4956 次
发布时间:2019-06-12

本文共 1122 字,大约阅读时间需要 3 分钟。

 
题意 :t个队伍m道题,i队写对j题的概率为pij。冠军是解题数超过n的解题数最多的队伍之一,求满足有冠军且其他队伍解题数都大于等于1的概率。
 
f[i][j][w]表示i队到第j题总共解出w道题的概率.
为了避免重复计数;
pa=所有队伍到最后一道题时的解题数都大于1的概率;
pb=所有队伍到最后一道题时解题数都小于n的概率;
答案为pa-pb.
 
代码如下
1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 using namespace std; 8 const int maxn=1010; 9 const double eps=1e-8;10 const int modn=998244353;11 int m,n,t;12 double f[maxn][35][35]={};13 double f1[maxn][35]={};14 double a[maxn][35];15 int main(){16 while(~scanf("%d%d%d",&m,&t,&n)){17 memset(f,0,sizeof(f));18 if(m==0&&n==0&&t==0)break;19 for(int i=1;i<=t;i++){20 for(int j=1;j<=m;j++){21 scanf("%lf",&a[i][j]);22 }23 }24 double t1=1,t2=1,t3,t4;25 for(int i=1;i<=t;i++){26 f[i][0][0]=1;27 for(int j=1;j<=m;j++){28 for(int w=0;w<=j;w++){29 if(j-1>=w)f[i][j][w]+=f[i][j-1][w]*(1.0-a[i][j]);30 f[i][j][w]+=f[i][j-1][w-1]*a[i][j];31 }32 }33 t3=0,t4=0;34 for(int j=1;j<=m;j++){35 t3+=f[i][m][j];36 if(j
View Code

 

转载于:https://www.cnblogs.com/137shoebills/p/7786520.html

你可能感兴趣的文章
关于 percona monitoring plugins插件报slave is stoped on ip地址
查看>>
Spring-介绍(一)
查看>>
iOS中时间与时间戳的相互转化
查看>>
CSS3和jQuery实现的自定义美化Checkbox和Radiobox
查看>>
超炫酷的jQuery/HTML5应用效果及源码
查看>>
内置函数
查看>>
CF572_Div2_D2
查看>>
Mybatis中jdbcType和javaType对应关系
查看>>
dedecms目录结构,非常全
查看>>
iOS UINavigationController
查看>>
组合博弈入门
查看>>
Web框架之Tornado
查看>>
json兼容ie8
查看>>
zepto源码研究 - zepto.js - 1
查看>>
php操作memcache的使用【转】
查看>>
MVC网址路由与生命周期
查看>>
.NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件
查看>>
经典案例, 每隔一分钟执行一次的定时任务, 用 thread+ while(true) 还是timer
查看>>
面向对象
查看>>
leetcode Lowest Common Ancestor of a Binary Tree
查看>>