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);
      }
    }

      

  • 相关阅读:
    Crystal Reports 参考帮助信息
    五个寓言故事令你受益匪浅【来自:Chinabyte】
    设计五原则
    清除SQL日志
    SQL SERVER 2008 函数大全 字符串函数
    Java的内存管理与内存泄露
    Drawable和Bitmap的区别
    Java内存分配原理精讲
    周鸿祎:用户体验,简而未减
    Java编程中“为了性能”需做的26件事
  • 原文地址:https://www.cnblogs.com/kiuhghcsc/p/5550812.html
Copyright © 2011-2022 走看看