zoukankan      html  css  js  c++  java
  • poj 2151 Check the difficulty of problems

    dp[i][j][s]表示第i个人,在前j个问题解决了s个问题

    dp[i][j][s]=dp[i][j-1][s-1]*p[i][j]+dp[i][j-1][s]*(1-p[i][j]);

     1 #include<iostream>
     2 #include<string>
     3 #include<cstdio>
     4 #include<vector>
     5 #include<queue>
     6 #include<stack>
     7 #include<algorithm>
     8 #include<cstring>
     9 #include<stdlib.h>
    10 #include<cmath>
    11 using namespace std;
    12 #define pb push_back
    13 double dp[1010][35][35],p[1010][35];
    14 int main(){
    15     int n,m,k;
    16     while(cin>>n>>m>>k&&(n+m+k)){
    17         for(int i=1;i<=m;i++)
    18             for(int j=1;j<=n;j++)
    19             scanf("%lf",&p[i][j]);
    20         memset(dp,0,sizeof(dp));
    21         for(int i=1;i<=m;i++)
    22             dp[i][0][0]=1;
    23         for(int i=1;i<=m;i++){
    24             for(int j=1;j<=n;j++){
    25                  dp[i][j][0]=dp[i][j-1][0]*(1-p[i][j]);
    26                  for(int s=1;s<=j;s++)
    27                  dp[i][j][s]=dp[i][j-1][s-1]*p[i][j]+dp[i][j-1][s]*(1-p[i][j]);
    28             }
    29         }
    30         double tmp=1,ko=1;
    31         for(int i=1;i<=m;i++)
    32         {
    33             double tt=0;
    34             for(int j=1;j<=n;j++)
    35             tt+=dp[i][n][j];
    36             ko*=tt;
    37         }
    38         for(int i=1;i<=m;i++)
    39         {
    40             double sum=0;
    41             for(int j=1;j<k;j++)
    42                 sum+=dp[i][n][j];
    43             tmp*=sum;
    44         }
    45         printf("%.3f
    ",ko-tmp);
    46     }
    47 }
  • 相关阅读:
    【258】雅思口语常用话
    【256】◀▶IEW-答案
    UITabBarController 标签栏控制器
    枚举
    HDU3631:Shortest Path(Floyd)
    让Barebox正确引导Tiny6410的linux内核
    调度子系统2_核心调度器
    12.10 公司面试总结
    X265编译中C2220错误的解决办法
    JSP元素和标签
  • 原文地址:https://www.cnblogs.com/ainixu1314/p/3883764.html
Copyright © 2011-2022 走看看