HDU 5194 DZY Loves Balls
2015-03-28 23:37
375 查看
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. (TestCase≤150)
The first line contains two integers, n, m(1≤n,m≤12)
Output
For each case, output the corresponding result, the format is p/q(p and q are
coprime)
Sample Input
Sample Output
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. (TestCase≤150)
The first line contains two integers, n, m(1≤n,m≤12)
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/5 HintCase 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 考虑期望的可加性。第i(1≤i<n+m)个位置上出现0,第i+1个位置上出现1的概率是mn+m×nn+m−1,那么答案自然就是∑i=1n+m−1mn+m×nn+m−1=nmn+m 如果你不能马上想到上述的简便的方法,也可以选择暴力枚举所有01串,也是可以AC的。最后一步你需要再计算一下gcd,十分简便。强大的题解,可惜本人是想不到这样的,自己dp玩玩。
#include<stdio.h> #include<iostream> #include<algorithm> #include<map> #include<queue> #include<stack> #include<vector> #include<cstdlib> using namespace std; const int maxn = 20; int n, m, T, f[maxn][maxn][4], tot; int gcd(int x, int y) { if (x % y != 0) return gcd(y, x%y); return y; } int main() { while (scanf("%d%d", &n, &m) != EOF) { memset(f, 0, sizeof(f)); for (int i = 1; i <= max(n, m); i++) f[0][i][0] = f[i][0][1] = 1; for (int i = 1; i <= n; i++) for (int j = 1; j <= m; j++) if (i + j) { f[i][j][0] = f[i][j - 1][0] + f[i][j - 1][1]; f[i][j][2] = f[i][j - 1][2] + f[i][j - 1][3]; f[i][j][1] = f[i - 1][j][0] + f[i - 1][j][1]; f[i][j][3] = f[i - 1][j][2] + f[i - 1][j][3] + f[i - 1][j][0]; } for (int i = n + 1, j = tot = 1; i <= n + m; i++) { tot *= i; while (j <= m&&tot%j == 0) tot = tot / j++; } int k = gcd(tot, f [m][3] + f [m][2]); printf("%d/%d\n", (f [m][2] + f [m][3]) / k, tot / k); } }
相关文章推荐
- 【CUGBACM15级BC第35场 A】hdu 5194 DZY Loves Balls
- hdu 5194 DZY Loves Balls(暴力,数学期望)
- hdu 5194 DZY Loves Balls (dp)
- HDU 5194 DZY Loves Balls (组合数学)
- HDU 5194 DZY Loves Balls(概率)
- HDU 5194 DZY Loves Balls
- HDU 5194 DZY Loves Balls(排列组合瞎搞 )
- HDU-5194-DZY Loves Balls(BestCoder Round # 35 )
- HDU 5194 DZY Loves Balls(期望可加性)
- hdu 5194 DZY Loves Balls
- hdu 5194 DZY Loves Balls【bfs+打表】
- HDU 5194 DZY Loves Balls(数学组合or各种乱搞)
- HDU 5194——DZY Loves Balls
- HDU 5645 DZY Loves Balls 水题
- hdoj 5194 DZY Loves Balls【规律&&gcd】
- HUD 5194--DZY Loves Balls【规律】
- hdu DZY Loves Balls
- hdu 5645 DZY Loves Balls 概率
- HDOJ-5194-DZY Loves Balls 解题报告
- 杭电5194DZY Loves Balls