UVA11427 Expect the Expected

题意:每盘游戏赢的概率,一天玩n盘,如果赢得比例超过p就会停止,求平均玩几天

题解:每天玩的赢得概率相等,只要求一天的概率即可,期望可以极限算出

还有一种做法,每天是独立的,第1天输的期望是1概率是Q,第一天赢得概率是(1-Q)就到第二天,第二天期望是e,加上第一天,就是e+1,全期望公式得e = Q*e+(1-Q)*e

#include <bits/stdc++.h>
#define maxn 110
#define ll long long
using namespace std;
double dp[maxn][maxn];
int main(){
    int T, a, b, c, n;
    cin>>T;
    for(int i=1;i<=T;i++){
        memset(dp, 0, sizeof(dp));
        scanf("%d/%d%d", &a, &b, &n);
        double p = a*1.0/b, q = 0;
        dp[0][0] = 1;
        for(int i=1;i<=n;i++){
            dp[i][0] = (1-p)*dp[i-1][0];
            for(int j=1;j<=n;j++){
                if(j*b<=a*i) dp[i][j] = dp[i-1][j-1]*p+dp[i-1][j]*(1-p);
            }
        }
        for(int i=0;i<=n;i++) q += dp[n][i];
        printf("Case #%d: %d\n", i, (int)(1/q));
    }
    return 0;
}
时间: 2024-10-14 06:36:44

UVA11427 Expect the Expected的相关文章

UVA11427 Expect the Expected 概率dp+全概率公式

题目传送门 题意:小明每晚都玩游戏,每一盘赢的概率都是p,如果第一盘就赢了,那么就去睡觉:否则继续玩,玩到赢的比例大于p才去睡:如果一直玩了n盘还没完成,就第二天再玩,并且游戏记录清空:问他玩游戏天数的期望: 思路:由于每次玩游戏,每天玩游戏都是独立重复试验,所以可以考虑一天玩游戏,玩不到p的概率(p都玩不到?). 设$dp[i][j]$表示玩了i次游戏,获胜j次,并且过程中期望都不会超过p的概率. 则显然有:$dp[i][j]=dp[i-1][j]*(1-p)+dp[i-1][j-1]*p$.

uva 11427 - Expect the Expected(概率)

题目链接:uva 11427 - Expect the Expected 题目大意:你每天晚上都会玩纸牌,每天固定最多玩n盘,每盘胜利的概率为p,你是一个固执的人,每天一定要保证胜局的比例大于p才会结束游戏,若n局后仍没有,就会不开心,然后以后再也不完牌,问说你最多会玩多少个晚上. 解题思路:当j/i ≤ p时有dp(i-1,j) (1-p) + dp(i-1, j-1) p,其他dp(i,j) = 0.Q=∑d(n,i) 列出数学期望公式: EX=Q+2Q(1?Q)+3Q(1?Q)2+- s=

UVA 11427 - Expect the Expected(概率递推期望)

UVA 11427 - Expect the Expected 题目链接 题意:玩一个游戏,赢的概率p,一个晚上能玩n盘,如果n盘都没赢到总赢的盘数比例大于等于p,以后都不再玩了,如果有到p就结束 思路:递推,dp[i][j]表示玩i盘,赢j盘的概率,那么一个晚上玩了n盘小于p的概率递推式为: dp(i,j)=dp(i?1,j)?(1?p)+dp(i?1,j?1)?p 总和为Q=dp(n,0)+dp(n,1)+...+dp(n,x)(x/n<p) 那么每个晚上失败的概率Q就求出来了,那么平均玩的

UVA - 11427 Expect the Expected (DP+概率)

Description Problem A Expect the Expected Input: Standard Input Output: Standard Output   Some mathematicalbackground. This problem asks you to compute the expected value of arandom variable. If you haven't seen those before, the simple definitions a

uva 11427 Expect the Expected

https://vjudge.net/problem/UVA-11427 大佬题解: http://www.cnblogs.com/xiong-/archive/2013/08/14/3258476.html #include<cstring> #include<cstdio> using namespace std; double Q,dp[101][101],p; int main() { int t,a,b,n; scanf("%d",&t); f

UVa 11427 (期望 DP) Expect the Expected

设d(i, j)表示前i局每局获胜的比例均不超过p,且前i局共获胜j局的概率. d(i, j) = d(i-1, j) * (1-p) + d(i-1, j-1) * p 则只玩一天就就不再玩的概率Q = sum{d(n, i) | 0 ≤ i ≤ p*n} 那么期望为 这是一个无穷级数,可以用高数的一些知识来解决. 另1-Q = t 将1-Q带入t,并将左边的Q乘过去得: 书上还介绍了一种更简单的方法,假设所求期望为e 第一天玩完就去睡觉,概率为Q,期望为1:第一天玩得高高兴兴,概率为1-Q,

UVA 11427 Expect the Expected(DP+概率)

链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=35396 [思路] DP+概率 见白书. [代码] 1 #include<cstdio> 2 #include<cstring> 3 using namespace std; 4 5 const int N = 100+10; 6 7 int n,a,b; 8 double f[N][N]; 9 10 int main() { 11 int T,kase=

Expect the Expected UVA - 11427(概率dp)

题意: 每天晚上你都玩纸牌,如果第一次就赢了,就高高兴兴的去睡觉,如果输了就继续玩.假如每盘游戏你获胜的概率都为p,每盘游戏输赢独立.如果当晚你获胜的局数的比例严格大于p时才停止,而且每天晚上最多只能玩n局,如果获胜比例一直不超过p的话,以后就再也不玩纸牌了.问在平均情况下,你会玩多少个晚上纸牌. 解析: 求出一天的就完蛋的概率P,然后符合超几何分布,则期望的天数即为1/P 设dp[i][j]为前i次游戏 j次成功的概率  则 dp[i][j] = dp[i-1][j-1]*p + dp[i-1

UVA.11427.Expect the Expected(期望)

题目链接 \(Description\) https://blog.csdn.net/Yukizzz/article/details/52084528 \(Solution\) 首先每一天之间是独立的. 所以设\(f[i][j]\)为前\(i\)天赢了\(j\)局的概率,要满足当前获胜比例始终≤\(p\).容易得出转移方程. 所以玩完\(n\)局之后获胜比例仍不超过\(p\)的概率为\(Q=\sum_{i=0}^{\frac in\leq p}f[n][i]\). 设\(E\)为期望玩牌天数.有