DZY Loves Balls
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 577 Accepted Submission(s): 317
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, S
i
=1
,
otherwise S
i
=0
.
DZY wants to know the expected times that '01' occurs in S
.
Now, DZY starts to randomly pick out the balls one by one. It forms a sequence S
DZY wants to know the expected times that '01' occurs in S
Input
The input consists several test cases. (TestCase≤150
)
The first line contains two integers, n
,
m(1≤n,m≤12)![]()
The first line contains two integers, n
Output
For each case, output the corresponding result, the format is
p/q
(p
and q
are coprime)
Sample Input
1 1 2 3
Sample Output
1/2 6/5HintCase 1: S='01' or S='10', so the expected times = 1/2 = 1/2 Case 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
可能数据比较弱,找规律就水过了。
分子=m * n
分母=m + n
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int gcd(int a,int b){
if(b == 0)
return a;
else
return gcd(b, a % b);
}
int main (){
int n,m;
while(scanf("%d%d",&n, &m)!=EOF){
int a = m * n;
int b = m + n;
printf("%d/%d\n", (m*n)/gcd(a,b),(m+n)/gcd(a,b));
}
return 0;
}