zoukankan      html  css  js  c++  java
  • hdu 4586 Play the Dice 数学 概率

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4586

    题意:

    给一个n面的骰子,每一面有一个分数,掷到的话可以得到那个分数

    其中有m个面,当你掷到这些面的时候可以再掷一次

    求得分的数学期望

    思路:

    每轮得分的期望 乘以 轮数的期望

    每轮得分的期望 = 各个面的平均分 = sum / n;

    轮数期望 = 1 + m/n + (m/n)^2 + ... = n - m / n 

    所以ans = sum / (n - m) ,其中 n!=m

    要特判一些情况

    如果 n == m 并且 各个面的分数不全为零 那么得分为INF

    如果 n == m 并且 各个面的分数全为零 那么得分为0.00

    思路上,注意

    可以重掷的面的分权是大是小并不影响得分的期望

    #include <iostream>
    #include <cstdlib>
    #include <cstdio>
    #include <algorithm>
    #include <iostream>
    #include <cstring>
    
    using namespace std;
    
    const int maxn = 10010;
    
    int a[maxn];
    int b[maxn];
    
    
    int main()
    {
        //freopen("in.txt", "r", stdin);
    
        int n, m;
        while(scanf("%d", &n) == 1)
        {
            int sum = 0;
            for(int i = 0; i < n; i++)
            {
                scanf("%d", &a[i]);
                sum = sum + a[i];
            }
    
            scanf("%d", &m);
            for(int j = 0; j < m; j++)
                scanf("%d", &b[j]);
    
            if(n == m)
            {
                if(sum == 0)
                    printf("0.00
    ");
                else
                    printf("inf
    ");
            }
            else
            {
                double ans = (double)sum / (n - m);
                printf("%.2f
    ", ans);
            }
        }
    }
  • 相关阅读:
    window XP下 php5.5+mysql+apache2+phpmyadmin安装
    poj2478Farey Sequence
    poj2723Get Luffy Out
    niop2015day2
    P2473 [SCOI2008]奖励关
    P4284 [SHOI2014]概率充电器
    P2486 [SDOI2011]染色
    noip2015day1
    hdu 2795 Billboard
    exgcd
  • 原文地址:https://www.cnblogs.com/dishu/p/4529637.html
Copyright © 2011-2022 走看看