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

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

    p[i][j]表示第i个队伍做对第j题的概率。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]);
    再求出每个队都至少做对 1 道题的概率:ans1 *= 1 - dp[i][m][0];
    求出每个队都只做对了 1 ~ n-1 题的概率 ans2即:(把每个队做对 1 ~ n-1 题的概率相加后,并把每个队的结果相乘);
    然后两者相减ans1-ans2

     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 #include<string.h>
     4 int M,T,N;
     5 double p[1002][32];
     6 double dp[1002][32][32];
     7 double sum[1002][32];
     8 int main() {
     9     scanf("%d %d %d",&M,&T,&N);
    10     while(M&&N&&T){
    11         memset(p,0,sizeof(p));
    12         for(int i=1;i<=T;i++){
    13             for(int j=1;j<=M;j++){
    14                 scanf("%lf",&p[i][j]);
    15             }
    16         }
    17         memset(dp,0,sizeof(dp));
    18         for(int i=1;i<=T;i++){
    19             dp[i][1][1]=p[i][1];
    20             dp[i][1][0]=1-p[i][1];
    21 
    22         }
    23         for(int i=1;i<=T;i++){
    24             for(int j=2;j<=M;j++){
    25                 for(int k=0;k<=j;k++){
    26                     dp[i][j][k]=dp[i][j-1][k]*(1.0-p[i][j]);
    27                     if(k>0) dp[i][j][k]+=dp[i][j-1][k-1]*p[i][j];
    28                 }
    29             }
    30         }
    31         memset(sum,0,sizeof(sum));
    32         for(int i=1;i<=T;i++){
    33              sum[i][0]=dp[i][M][0];
    34             for (int j=1;j<=M;j++) {
    35                    sum[i][j]=sum[i][j-1]+dp[i][M][j];
    36             }
    37         }
    38         double ans1=1.0,ans2=1.0;
    39         for(int i=1; i<=T; i++)  {
    40                ans1*=sum[i][M]-sum[i][0];
    41                ans2*=(sum[i][N-1]-sum[i][0]);
    42             }
    43         printf("%.3lf
    ",ans1-ans2);
    44         scanf("%d %d %d",&M,&T,&N);
    45     }
    46 
    47     return 0;
    48 }
    Time Limit: 2000MS   Memory Limit: 65536K
    Total Submissions: 5766   Accepted: 2515

    Description

    Organizing a programming contest is not an easy job. To avoid making the problems too difficult, the organizer usually expect the contest result satisfy the following two terms: 
    1. All of the teams solve at least one problem. 
    2. The champion (One of those teams that solve the most problems) solves at least a certain number of problems. 

    Now the organizer has studied out the contest problems, and through the result of preliminary contest, the organizer can estimate the probability that a certain team can successfully solve a certain problem. 

    Given the number of contest problems M, the number of teams T, and the number of problems N that the organizer expect the champion solve at least. We also assume that team i solves problem j with the probability Pij (1 <= i <= T, 1<= j <= M). Well, can you calculate the probability that all of the teams solve at least one problem, and at the same time the champion team solves at least N problems? 

    Input

    The input consists of several test cases. The first line of each test case contains three integers M (0 < M <= 30), T (1 < T <= 1000) and N (0 < N <= M). Each of the following T lines contains M floating-point numbers in the range of [0,1]. In these T lines, the j-th number in the i-th line is just Pij. A test case of M = T = N = 0 indicates the end of input, and should not be processed.

    Output

    For each test case, please output the answer in a separate line. The result should be rounded to three digits after the decimal point.

    Sample Input

    2 2 2
    0.9 0.9
    1 0.9
    0 0 0
    

    Sample Output

    0.972
  • 相关阅读:
    Html禁止粘贴 复制 剪切
    表单标签
    自构BeanHandler(用BeansUtils)
    spring配置中引入properties
    How Subcontracting Cockpit ME2ON creates SD delivery?
    cascadia code一款很好看的微软字体
    How condition value calculated in sap
    Code in SAP query
    SO Pricing not updated for partial billing items
    Javascript learning
  • 原文地址:https://www.cnblogs.com/sdxk/p/4710041.html
Copyright © 2011-2022 走看看