zoukankan      html  css  js  c++  java
  • UESTC

    原题链接

    凤神隐居山林,与猫狗为伴。起初,他拥有cc只猫和dd只狗。每天下午他随机从中选择一只出去游玩并且晚上归来。如果他带的是狗,则第二天早上狗的数量增加ww只,否则,猫的数量增加ww只。由于凤神特别钟爱狗,某些重要的日子他想带狗出去玩,于是他想知道他在第aa天和第bb天都带狗出去玩的概率是多少?

    Input

    第一行包含55个整数:c(0<c1000000)d(0<d1000000)w(0<w1000000)a(0<a<1000000)b(a<b1000000)c(0<c≤1000000),d(0<d≤1000000),w(0<w≤1000000),a(0<a<1000000),b(a<b≤1000000)

    Output

    答案用最简分数表示,x/yx/y,xx为分子,yy为分母。

    Sample Input

    1 1 1 1 2
    

    Sample Output

    1/3 

    分析:
    参考自:http://blog.csdn.net/code12hour/article/details/46669143
    原博文写得很清楚,公式列出来了。我只是在这里写写自己的理解,加深印象。
    首先求第i天带狗出门的概率。设h(i,j)表示前i天中,有j天带的是狗的概率。那么,第i天带狗出门的概率pi等于前i天结束后所有可能的狗的数目再除以猫狗的总数。
    第i+1天带狗出门的概率就是前i-1天的各种情况加上第i天带狗或带猫。这里就是我认为的需要理解的地方,接下来看上面链接的求证过程就好,一定能看懂的了。
    #include<iostream>
    #include<cstdio>
    #include<cmath>
    #include<algorithm>
    using namespace std;
    typedef long long LL;
    
    int main(){
        int c, d,w,a,b;
        scanf("%d%d%d%d%d",&c,&d,&w,&a,&b);
        LL x = 1LL*d*(d+w);
        LL y = 1LL*(c+d)*(c+d+w);
        LL g = __gcd(x,y);
        printf("%lld/%lld",x/g,y/g);
        return 0;
    }
     
  • 相关阅读:
    redis 笔记
    经验
    增加模块-概念图
    node API buffer
    VS2010中使用CL快速 生成DLL的方法
    WIN7下VS2010中使用cl编译的步骤
    Win7下VS2010编译的程序在XP报错:找不到msvcp100d.dll或者msvcp100.dll
    C#速学
    Windows下架设SVN服务
    Redis 压力测试
  • 原文地址:https://www.cnblogs.com/fht-litost/p/8516567.html
Copyright © 2011-2022 走看看