hdu5194 DZY Loves Balls 【概率论 or 搜索】

//yy:那天考完概率论,上网无聊搜个期望可加性就搜到这题,看到以后特别有亲和感,挺有意思的。

 

hdu5194 DZY Loves Balls 【概率论 or 搜索】

题意:

一个盒子里有n个黑球和m个白球【n,m≤12】。每次随机从盒子里取走一个球,取了n+m次后,刚好取完。现在用一种方法生成了一个随机的01串S[1…(n+m)],如果第i次取出的球是黑色的,那么S[i]=1,如果是白色的,那么S[i]=0。求'01'在S串中出现的期望次数。

题解:

求出在第i个位置上出现0,第i+1个位置上出现1的概率,这种情况设为Xi = 1,这就是二项分布啦,

根据期望的可加性,有E∑Xi = N * P。(期望的可加性不要求事件相互独立喔,方差要求JT1ZTDTB{65D{_Z~NMP[N)V所以可以这样做吖)

Xi = 1的概率 P = m / (n + m)  *  n / (n + m - 1)

由题意可知这里的 N = (n + m - 1)

化简一下答案就出来了: n * m / (n + m)

#include <cstdio>
#include <algorithm>
using namespace std;
int gcd(int a, int b) {return b ? gcd(b, a%b) : a;}
int main() {
    int m, n, x;
    while(~scanf("%d%d", &m, &n)) {
        x = gcd(m*n, m+n);
        printf("%d/%d\n", m*n/x, (m+n)/x);
    }
    return 0;
}

 

 还有个搜索方法,房教写的,膜拜ORZ

get一个快遗忘的知识点,用常引用减小开栈的开销。。。如果既要利用引用提高程序的效率,又要保护传递给函数的数据不在函数中被改变,就应使用常引用。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
long long dp[13][13];
long long C[25][25];
long long ans = 0;
ll dfs(const int& x,const int& y,const int& st)
{
    if(st==1&&dp[x][y]!=-1) return dp[x][y];
    long long ans = 0;
    if(st==0){
        if(x>0){
            ans += C[x+y-1][y] + dfs(x-1,y,1);
        }
        if(y>0)
        {
            ans += dfs(x,y-1,0);
        }
    }
    if(st==1){
        if(x>0){
            ans += dfs(x-1,y,1);
        }
        if(y>0)
        {
            ans += dfs(x,y-1,0);
        }
    }
    if(st==1)dp[x][y] = ans;
    return ans;
}
void get_C(int maxn)
{
    C[0][0] = 1;
    for(int i=1;i<=maxn;i++)
    {
        C[i][0] = 1;
        for(int j=1;j<=i;j++)
            C[i][j] = C[i-1][j]+C[i-1][j-1];
        //C[i][j] = (C[i-1][j]+C[i-1][j-1])%MOD;
    }
}
int main(){
    memset(dp,-1,sizeof(dp));
    dp[0][0] = 0;
    get_C(24);
    int n,m;
    while(scanf("%d%d",&n,&m)==2)
    {
        ll b=C[n+m][n];
        ll sum=dfs(n,m,1);
        ll a=__gcd(sum,b);
        printf("%lld/%lld\n",sum/a,b/a);
    }
    return 0;
}
posted @ 2017-07-02 21:09  GraceSkyer  阅读(621)  评论(0编辑  收藏  举报

~~~~~~ACM大牛语录,激励一下~~~~~~

为了世界的和平,为了女生的安全,我拼命做题,做题,做题!

用最短的时间,刷最多的题!

给我一滴泪,我就看到了你全部的海洋!

seize the hour, seize the day.

人生难免有无奈,幸福走远了,或是感叹幸福来迟了.其实我一直相信,无论手中的幸福是多么微不足道的感觉,我会把握住那每一分,每一秒,当幸福依旧像那百鸟般飞逝,终究无法掌握时,我会感谢它,曾经降临过!

A自己的题,让别人郁闷去吧

WA肠中过,AC心中留 TLE耳边过,AC特别牛

天然的悲苦和伤逝,过去有过,以后还会有

^*^一步一步往上爬^*^

AC就像练级,比赛就像PK. 练级不如PK好玩

其实,世上本没有ACM,AC的人多了,也便有了!

AC无止尽~ Seek you forever~

找呀找呀找水题,找到一个AC一个呀!

AC是检验程序的唯一标准。

真的猛士,敢于直面惨淡的人生,敢于正视淋漓的鲜血……