zoukankan      html  css  js  c++  java
  • Expect the Expected UVA

    题意:

      每天晚上你都玩纸牌,如果第一次就赢了,就高高兴兴的去睡觉,如果输了就继续玩。假如每盘游戏你获胜的概率都为p,每盘游戏输赢独立。如果当晚你获胜的局数的比例严格大于p时才停止,而且每天晚上最多只能玩n局,如果获胜比例一直不超过p的话,以后就再也不玩纸牌了。问在平均情况下,你会玩多少个晚上纸牌。

    解析:

      求出一天的就完蛋的概率P,然后符合超几何分布,则期望的天数即为1/P

    设dp[i][j]为前i次游戏 j次成功的概率  则 dp[i][j] = dp[i-1][j-1]*p + dp[i-1][j]*(1-p);

    最后累加P = dp[n][1] + dp[n][2] + ```````  一直加到成功的次数除n 等于给出的p 即可

    然后输出1/P

    #include <iostream>
    #include <cstdio>
    #include <sstream>
    #include <cstring>
    #include <map>
    #include <set>
    #include <vector>
    #include <stack>
    #include <queue>
    #include <algorithm>
    #include <cmath>
    #define rap(a, n) for(int i=a; i<=n; i++)
    #define MOD 2018
    #define LL long long
    #define ULL unsigned long long
    #define Pair pair<int, int>
    #define mem(a, b) memset(a, b, sizeof(a))
    #define _  ios_base::sync_with_stdio(0),cin.tie(0)
    //freopen("1.txt", "r", stdin);
    using namespace std;
    const int maxn = 10010, INF = 0x7fffffff;
    double dp[110][110];
    
    int main()
    {
        int T, kase = 0;
        cin>> T;
        while(T--)
        {
            mem(dp, 0);
            double a, b;
            int n;
            scanf("%lf/%lf%d", &a, &b, &n);
            double p = a/(double) b;
            dp[0][0] = 1, dp[0][1] = 0;
            rap(1, n)
            {
                for(int j=0; j*b <= a*i; j++)   //等价于枚举满足j/i <= a/b 的j, 但避免了误差
                {
                    dp[i][j] = dp[i-1][j] * (1-p);
                    if(j) dp[i][j] += dp[i-1][j-1] * p;  //防止越界
                }
            }
            double P = 0.0;
            for(int j=0; j*b <= a*n; j++)
                P += dp[n][j];
    
            printf("Case #%d: %d
    ", ++kase, (int)(1/P));
    
    
        }
    
        return 0;
    }
    自己选择的路,跪着也要走完。朋友们,虽然这个世界日益浮躁起来,只要能够为了当时纯粹的梦想和感动坚持努力下去,不管其它人怎么样,我们也能够保持自己的本色走下去。
  • 相关阅读:
    Hibernate性能优化之EHCache缓存
    Hibernate性能优化之SessionFactory重用
    用 NetBeans 快速开发 Java JAX-RS RESTful 服务
    Linux iptables:场景实战一
    Linux iptables:规则组成
    Linux iptables:规则原理和基础
    Linux安全之SYN攻击原理及处理
    Linux常用网络工具:批量主机服务扫描之netcat
    Linux常用网络工具:批量主机服务扫描之nmap
    Linux常用网络工具:路由扫描之mtr
  • 原文地址:https://www.cnblogs.com/WTSRUVF/p/9351139.html
Copyright © 2011-2022 走看看