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\n");
            else
                printf("inf\n");
        }
        else
        {
            double ans = (double)sum / (n - m);
            printf("%.2f\n", ans);
        }
    }
}
时间: 2024-10-27 07:50:54

hdu 4586 Play the Dice 数学 概率的相关文章

HDU 4586 Play the Dice(概率+期望)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4586 Problem Description There is a dice with n sides, which are numbered from 1,2,...,n and have the equal possibility to show up when one rolls a dice. Each side has an integer ai on it. Now here is a

hdu 4586 Play the Dice (概率+等比数列)

Play the Dice Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 1328    Accepted Submission(s): 429 Special Judge Problem Description There is a dice with n sides, which are numbered from 1,2,...

HDU 4586 Play the dice(概率题,推公式)

Problem Description: There is a dice with n sides, which are numbered from 1,2,...,n and have the equal possibility to show up when one rolls a dice. Each side has an integer ai on it. Now here is a game that you can roll this dice once, if the i-th

hdu 4586 Play the Dice

题意:有n个格子,每个格子有一个价值ai,每次翻开该格子都会获得该格子的价值,并且每个格子的翻开的概率是相同的,其中m个格子翻开之后可以获得额外的bi次翻动机会,求一个人的获得价值的期望 sum=a1+a2+....+an,每次翻开一个格子的获得价值a=sum/n,每次可以获得额外翻动机会的概率为q=m/n,那么获得价值的期望为a*(q^0+q^1+....+q^INF)=sum/(n-m) if(sum==0)puts("0"); else (n==m) puts("inf

HDU 4652 Dice (概率DP)

Dice Problem Description You have a dice with m faces, each face contains a distinct number. We assume when we tossing the dice, each face will occur randomly and uniformly. Now you have T query to answer, each query has one of the following form: 0

hdu 4586 (概率+期望)

http://acm.hdu.edu.cn/showproblem.php?pid=4586 大致题意:有一个骰子有n个面,掷到每一个面的概率是相等的,每一个面上都有相应的钱数.其中当你掷到m个面之一时,你有多掷一次的机会.问最后所得钱数的期望. 思路:设投掷第一次的期望是p,那么第二次的期望是m/n*p,第三次的期望是 (m/n)^2*p......第N次的期望是(m/n)^(N-1)*p. 那么这些期望之和便是答案.之前也是想到这,但不知道如何处理无限的情况.当时脑卡了,这不是赤裸裸的等比数

Hdu 4386 Play the Dice 解题报告

hdu 4586---Play the dice 解题思路:概率 题目描述:一个骰子有n面,每面朝上的概率相同,并且每一面上面都有一个数字,其中有m面是彩色的,代表掷到彩色面的时还可以继续掷下去,问最终掷得的数字的期望是多少? 解题方法: 方法一:只考虑单独掷每一次的情况,可以发现,每次掷到的期望是和先前无关的,假设a=sum/n(每掷一次的期望都是a),比如:掷第一次的时候期望是a,掷第二次的时候期望便是(m/n)*a,因为有(m/n)的概率能够掷第二次..依次可以继续下去,等比求和即可. u

hdu 5955 Guessing the Dice Roll 【AC自动机+高斯消元】

hdu 5955 Guessing the Dice Roll [AC自动机+高斯消元] 题意:给出 n≤10 个长为 L≤10 的串,每次丢一个骰子,先出现的串赢,问获胜概率. 题解:裸的AC自动机,求匹配到终止结点的概率,用 高斯消元?一开始不知道怎么建方程组,直接举个例子吧: Input: 1 2 2 1 1 2 1 图解: x0原本概率就是1,然后还要加上其他结点走向它的概率,,这样最后算下来是大于1的,现在还是觉得怪怪的... 1 #include <cstdio> 2 #inclu

HDU 4336 Card Collector(动态规划-概率DP)

Card Collector Problem Description In your childhood, do you crazy for collecting the beautiful cards in the snacks? They said that, for example, if you collect all the 108 people in the famous novel Water Margin, you will win an amazing award. As a