zoukankan      html  css  js  c++  java
  • POJ 2151:Check the difficulty of problems 概率DP

    Check the difficulty of problems

    题目链接:

    http://poj.org/problem?id=2151

    题意:

    有M (0<M≤30)个人,和T (1<T≤1000)道题目,求所有人都至少做出了一道题且其中有人做出N (0<N≤M)道或N道以上的概率

    题解:

    求出满足条件1(所有人都至少做出一道题目)的概率,再求出满足条件1且所有人的题数都小于N道的概率,减一下就是答案了

                  

    代码

    #include<stdio.h>
    #include<string.h>
    double a[1001][31],dp[31][31];
    int main()
    {
      int m,t,n;
      double res1,res2,ans1,ans2;
      while(~scanf("%d%d%d",&m,&t,&n)&&(m||t||n))
      {
        for(int i=1;i<=t;++i)
          for(int j=1;j<=m;++j)
            scanf("%lf",&a[i][j]);
        ans1=ans2=1;
        for(int i=1;i<=t;++i)
        {
          res1=0,res2=0;
          dp[0][0]=1;
          for(int j=1;j<=m;++j)
          {
            dp[j][0]=dp[j-1][0]*(1-a[i][j]);
            for(int k=1;k<=j;++k)
            {
              dp[j][k]=dp[j-1][k-1]*a[i][j];
              if(j>k)dp[j][k]+=dp[j-1][k]*(1-a[i][j]);
              if(j==m)
              {
                res1+=dp[j][k];
                if(k<n)res2+=dp[j][k];
              }
            }
          }
          ans1*=res1;
          ans2*=res2;
        }
        printf("%.3f ",ans1-ans2);
      }
    }

      

  • 相关阅读:
    Windows解决端口占用
    Oracle数字格式化
    Windows生成项目目录结构
    IDEA激活教程
    Windows搭建SMB服务
    在右键新建菜单中添加新项目
    Fastjson1.2.47反序列化+环境搭建+漏洞复现
    nmap常用命令及端口
    Shiro反序列化复现
    CVE-2020-0796漏洞复现
  • 原文地址:https://www.cnblogs.com/kiuhghcsc/p/5550812.html
Copyright © 2011-2022 走看看