zoukankan      html  css  js  c++  java
  • 保送

    【题目背景】

    yk同学赫赫有名,为什么呢?因为他参加了若干竞赛,所以认识无数大朋友和小盆友。可是无数大朋友和小盆友也都认识他,为什么呢?因为yk同学实在是太牛了~ 我们甚至经常可以在路上听到同学之间的典型谈话:

    小A:你认识yk吗?

    小B:当然认识啦,就是那个XX竞赛班的大牛哇~

    小A:他不光是XX竞赛班的神牛,还是XXX竞赛班的神牛呢~

    小B:哦~~

    然后小A小B一起无限膜拜中……

    那么,yk同学到底神到什么地步呢?

    世界上总共有N门竞赛,yk同学参加了全部,并且都能拿到保送!!运气好的时候呢,还能拿到一等奖!!怎么样,厉害吧~~

    【题目描述】

    现在有N门竞赛,yk同学对于不同学科有不同的概率拿到一等奖。现在yk想知道,他有多少的概率至少拿到M个一等奖。

    【输入格式】promotion.in

    第一行两个用空格隔开的正整数N,M

    下面N行,每行一个0~1的实数,第i+1行的实数表示第i门科目得到一等奖的概率。

    【输出格式】promotion.out

    一行一个实数,表示至少得到M门一等奖的概率。实数保留六位小数。

    【输入样例1】promotion.in

    2 1

    1

    1

    【输出样例1】

    1.000000

    【输入样例2】

    3 1

    0.046921

    0.959868

    0.008229

    【输出样例2】

        0.962066

    【数据范围】

    50% M<=N<=20

    100% M<=N<=100


    让人摸不着头脑的概率DP

    思路:

     欲做此题,必会概率

    学长的题解>:<

    设f[i][j]表示前i科竞赛共获得j门一等奖的概率

    f[0][0]=1; // 肯定的

    f[i][0]=f[i -1][0]*(1-gl[i]);

    // 前 i 科竞赛拿0个奖的概率 = ( 前 i -1 科竞赛拿0个奖的概率 ) x ( 第 i 科竞赛不拿奖的概率 )

    f[i][j]=f[i-1][j]*(1-gl[i])+f[i -1][j -1]*gl[i];

    // 前 i 科竞赛拿 j 个奖的概率 = ( 前 i -1 个竞赛拿 j 个奖的概率)x( 第 i 个竞赛不拿奖的概率 )+( 前 i -1 个竞赛拿 j -1 个奖的概率 ) x ( 第 i 个竞赛拿奖的概率 )

    代码^-^

    #include<stdio.h>
    #include<algorithm>
    using namespace std;
    double pro[101],f[101][101];
    int n,m;
    
    int main()
    {
    //    freopen("promotion.in","r",stdin);
    //    freopen("promotion.out","w",stdout);
        scanf("%d%d",&n,&m);
        f[0][0]=1;
        for(int i=1;i<=n;++i)
        {
            scanf("%lf",&pro[i]);
            f[i][0]=f[i-1][0]*(1-pro[i]);//前 i 科拿 0 个奖 
        }
        for(int i=1;i<=n;++i) 
            for(int j=1;j<=i;++j) 
                 f[i][j]=f[i-1][j]*(1-pro[i]) + f[i-1][j-1]*pro[i];
        
        double ans=0;         
        for(int i=m;i<=n;++i) ans+=f[n][i];
        printf("%.6lf",ans);
        return 0;
    }
    从0到1很难,但从1到100很容易
  • 相关阅读:
    php 框架选择
    转:从框架看PHP的五种境界及各自的薪资待遇(仅限于二三线城市,一线除外)
    百度云怎样提升下载速度
    .net体系与java体系
    绘制3D的js库
    Canvas游戏计算机图形教程
    Unity Manual 用户手册
    在windows系统下安装oracle 11g
    Three.js学习笔记
    php面试题之二——数据结构和算法(高级部分)
  • 原文地址:https://www.cnblogs.com/qseer/p/9501850.html
Copyright © 2011-2022 走看看