博客
关于我
HDU 5194 DZY Loves Balls
阅读量:437 次
发布时间:2019-03-06

本文共 1932 字,大约阅读时间需要 6 分钟。

DZY Loves Balls

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 807    Accepted Submission(s): 439


Problem Description
There are 
n
 black balls and 
m
 white balls in the big box.
Now, DZY starts to randomly pick out the balls one by one. It forms a sequence 
S
. If at the 
i
-th operation, DZY takes out the black ball, 
Si=1
, otherwise 
Si=0
.
DZY wants to know the expected times that '01' occurs in 
S
.
 

Input
The input consists several test cases. (
TestCase150
)
The first line contains two integers, 
n
m(1n,m12)
 

Output
For each case, output the corresponding result, the format is 
p/q
(
p
 and 
q
 are coprime)
 

Sample Input
1 12 3
 

Sample Output
1/26/5            Hint    Case 1: S='01' or S='10', so the expected times = 1/2 = 1/2Case 2: S='00011' or S='00101' or S='00110' or S='01001' or S='01010' or S='01100' or S='10001' or S='10010' or S='10100' or S='11000',so the expected times = (1+2+1+2+2+1+1+1+1+0)/10 = 12/10 = 6/5
 
题目大意:
给你n个黑球,m个白球,黑球标记为1,白球标记为0,问在所有的组合当中一共出现了多少个“01”串。
解题思路:
用概率统计的角度讲,这就是一个n重的伯努利试验。首先,确定一个随机变量。
设置为Xi,则在Xi位置上出现白球,并在X(i+1)位置上出现黑球的概率是p=(m/(n+m))*(n/(n+m-1))。这就是出现01串的概率,否则其他的情况概记为q=1-p。
即Xi只有两种状态,出现01串为1,否则为0。如下图所示。
这就是一个最为简单的二项分布了,以为Xi的取值是从1-(m+n-1)的。
所以有
得E(X)=(m/(m+n))*(n/(n+m-1))*(n+m-1)=(m*n)/(m+n)。
程序里面需要求的就是m*n和m+n的最大公约数化简了。
源代码:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;#define MAX 0x3f3f3f3f#define MIN -0x3f3f3f3f#define PI 3.14159265358979323#define N 1005int gcd(int n, int m){ int temp; if (m > n) swap(m, n); if (m == 1 || n == 1) return 1; temp = n%m; while (temp != 0) { n = m; m = temp; temp = n%m; } return m;}int main(){ int n, m; int num; int nn, mm; while (scanf("%d%d", &n, &m) != EOF) { nn = m*n; mm = m + n; num = gcd(nn, mm); printf("%d/%d\n", nn / num, mm / num); } return 0;}

转载地址:http://fojyz.baihongyu.com/

你可能感兴趣的文章
Netty工作笔记0085---TCP粘包拆包内容梳理
查看>>
Netty常用组件一
查看>>
Netty常见组件二
查看>>
netty底层源码探究:启动流程;EventLoop中的selector、线程、任务队列;监听处理accept、read事件流程;
查看>>
Netty心跳检测
查看>>
Netty心跳检测机制
查看>>
netty既做服务端又做客户端_网易新闻客户端广告怎么做
查看>>
Netty核心模块组件
查看>>
Netty框架内的宝藏:ByteBuf
查看>>
Netty框架的服务端开发中创建EventLoopGroup对象时线程数量源码解析
查看>>
Netty源码—1.服务端启动流程一
查看>>
Netty源码—1.服务端启动流程二
查看>>
Netty源码—2.Reactor线程模型一
查看>>
Netty源码—2.Reactor线程模型二
查看>>
Netty源码—3.Reactor线程模型三
查看>>
Netty源码—3.Reactor线程模型四
查看>>
Netty源码—4.客户端接入流程一
查看>>
Netty源码—4.客户端接入流程二
查看>>
Netty源码—5.Pipeline和Handler一
查看>>
Netty源码—5.Pipeline和Handler二
查看>>