//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。(期望的可加性不要求事件相互独立喔,方差要求所以可以这样做吖)

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 ;
}

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

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

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
long long dp[][];
long long C[][];
long long ans = ;
ll dfs(const int& x,const int& y,const int& st)
{
if(st==&&dp[x][y]!=-) return dp[x][y];
long long ans = ;
if(st==){
if(x>){
ans += C[x+y-][y] + dfs(x-,y,);
}
if(y>)
{
ans += dfs(x,y-,);
}
}
if(st==){
if(x>){
ans += dfs(x-,y,);
}
if(y>)
{
ans += dfs(x,y-,);
}
}
if(st==)dp[x][y] = ans;
return ans;
}
void get_C(int maxn)
{
C[][] = ;
for(int i=;i<=maxn;i++)
{
C[i][] = ;
for(int j=;j<=i;j++)
C[i][j] = C[i-][j]+C[i-][j-];
//C[i][j] = (C[i-1][j]+C[i-1][j-1])%MOD;
}
}
int main(){
memset(dp,-,sizeof(dp));
dp[][] = ;
get_C();
int n,m;
while(scanf("%d%d",&n,&m)==)
{
ll b=C[n+m][n];
ll sum=dfs(n,m,);
ll a=__gcd(sum,b);
printf("%lld/%lld\n",sum/a,b/a);
}
return ;
}

hdu5194 DZY Loves Balls 【概率论 or 搜索】的更多相关文章

  1. HDU 5194 DZY Loves Balls

    DZY Loves Balls Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...

  2. hdu 5645 DZY Loves Balls

    DZY Loves Balls  Accepts: 659  Submissions: 1393  Time Limit: 4000/2000 MS (Java/Others)  Memory Lim ...

  3. HDU 5645 DZY Loves Balls 水题

    DZY Loves Balls 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5645 Description DZY loves playing b ...

  4. hdoj 5194 DZY Loves Balls【规律&&gcd】

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5194 题意:给你n个黑球,m个白球,每次从中随机抽取一个,如果抽到黑球记为1如果抽出来白球记为0,让你 ...

  5. BC#76.2DZY Loves Balls

    DZY Loves Balls  Accepts: 659  Submissions: 1393  Time Limit: 4000/2000 MS (Java/Others)  Memory Lim ...

  6. 周赛-DZY Loves Chessboard 分类: 比赛 搜索 2015-08-08 15:48 4人阅读 评论(0) 收藏

    DZY Loves Chessboard time limit per test 1 second memory limit per test 256 megabytes input standard ...

  7. BZOJ 3512: DZY Loves Math IV [杜教筛]

    3512: DZY Loves Math IV 题意:求\(\sum_{i=1}^n \sum_{j=1}^m \varphi(ij)\),\(n \le 10^5, m \le 10^9\) n较小 ...

  8. hdoj5645DZY Loves Balls

    Problem Description DZY loves playing balls. He has n balls in a big box. On each ball there is an i ...

  9. CF444C. DZY Loves Colors[线段树 区间]

    C. DZY Loves Colors time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

随机推荐

  1. 安装并开启ssh服务

    sudo yum install openssh*    安装 2. 设置 sudo vi /etc/ssh/sshd_config 首先先把port改掉port 52222 限制用户AllowUse ...

  2. 【转】WEB安全之渗透测试流程

    熟悉渗透流程,攻击会像摆积木一样简单! 0x 01:信息收集 收集网站信息对渗透测试非常重要,收集到的信息往往会让你在渗透中获得意外惊喜. 1. 网站结构 可以使用扫描工具扫描目录,主要扫出网站管理员 ...

  3. MYSQL连接字符串参数解析(解释)

    被迫转到MySQL数据库,发现读取数据库时,tinyint类型的值都被转化为boolean了,这样大于1的值都丢失,变成true了.查阅资料MySQL中无Boolean类型,都是存储为tinyint了 ...

  4. Node.js学习笔记(二) --- CommonJs和Nodejs 中自定义模块

    一. 什么是 CommonJs? JavaScript 是一个强大面向对象语言,它有很多快速高效的解释器. 然而, JavaScript标准定义的 API 是为了构建基于浏览器的应用程序.并没有制定一 ...

  5. 基于Java实现简单亚马逊爬虫

    前言:最近博主买了台Kindle,感觉亚马逊上的图书资源质量挺好,还时不时地会有价格低但质量高的书出售,但限于亚马逊并没有很好的优惠提醒功能,自己天天盯着又很累.于是,我自己写了一个基于Java的亚马 ...

  6. 初步理解require.js模块化编程

    初步理解require.js模块化编程 一.Javascript模块化编程 目前,通行的Javascript模块规范共有两种:CommonJS和AMD. 1.commonjs 2009年,美国程序员R ...

  7. jqGrid用法汇总(全经典)

    1.支持多种类型的数据集合作为数据源 $("#grid1").jqgrid( ........ datatype: "xml", ........ ); XML ...

  8. 从官网下载mod_jk.so

    最近在搞apache和tomcat集群,这里就要用到mol_jk.so,在官网找了很久才知道在哪里下载,英语是硬伤啊. 1.打开tomcat官网 http://tomcat.apache.org/ 2 ...

  9. java 输出菱形

    package com.demo01; public class Triangle { /** * @param args */ /* * 第一步:规定输出的行数 * 第二步:输出空格 再输出一个星, ...

  10. Linux系统搭建GitLab---阿里云Centos7搭建Gitlab踩坑

    一.简介 GitLab,是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目安装. 它拥有与GitHub类似的功能,能 ...