HDU 5810 Balls and Boxes (打表)
来源:互联网 发布:不可思议的植物 知乎 编辑:程序博客网 时间:2024/05/17 02:08
Balls and Boxes
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 797 Accepted Submission(s): 526
Problem Description
Mr. Chopsticks is interested in random phenomena, and he conducts an experiment to study randomness. In the experiment, he throws n balls into m boxes in such a manner that each ball has equal probability of going to each boxes. After the experiment, he calculated the statistical variance V as
V=∑mi=1(Xi−X¯)2m
whereXi is the number of balls in the ith box, and X¯ is the average number of balls in a box.
Your task is to find out the expected value of V.
where
Your task is to find out the expected value of V.
Input
The input contains multiple test cases. Each case contains two integers n and m (1 <= n, m <= 1000 000 000) in a line.
The input is terminated by n = m = 0.
The input is terminated by n = m = 0.
Output
For each case, output the result as A/B in a line, where A/B should be an irreducible fraction. Let B=1 if the result is an integer.
Sample Input
2 12 20 0
Sample Output
0/11/2HintIn the second sample, there are four possible outcomes, two outcomes with V = 0 and two outcomes with V = 1.
Author
SYSU
Source
2016 Multi-University Training Contest 7
题意:n个球 放进m个箱子,每个球放进每个箱子的概率相同。求题意中的V=∑mi=1(Xi−X¯)2m
point:
打表找到规律。
打表代码:
#include <stdio.h>#include<iostream>using namespace std;#define ll long longint x,y;int a[20];double v=0;void dfs(int now,double p) //x球 y箱子{ if(now==x+1) { double ave=0; double vv=0; for(int i=1;i<=y;i++) { ave+=a[i]; } ave=ave*1.0/y*1.0; for(int i=1;i<=y;i++) { vv+=(a[i]*1.0-ave)*(a[i]*1.0-ave)/y; } v+=vv*p; return; } for(int i=1;i<=y;i++) { a[i]++; dfs(now+1,p/y); a[i]--; }}ll gcd(ll a,ll b){ if(a<b) swap(a, b); return b?gcd(b,a%b):a;}int main(){ for(int j=1;j<=10;j++) { for(int i=1;i<=10;i++) { memset(a,0,sizeof a); v=0; x=i; y=j; dfs(1,1); printf("%d %d %lf\n",x,y,v); } }}
可得,算出1个球放进m个箱子的v=(m-1)/(m*m)。n个球放进m个箱子就是nv。 分子分母化最简就行。
AC代码:
#include <stdio.h>#include<iostream>using namespace std;#define ll long longll gcd(ll a,ll b){ if(a<b) swap(a, b); return b?gcd(b,a%b):a;}int main(){ ll n,m; while(~scanf("%lld %lld",&n,&m)) { if(!(n+m)) break; ll ansa,ansb; ansa=n*(m-1); ansb=m*m; ll d=gcd(ansa,ansb); printf("%lld/%lld\n",ansa/d,ansb/d); } }
阅读全文
0 0
- HDU 5810 Balls and Boxes (打表)
- HDU 5810 Balls and Boxes
- hdu 5810 Balls and Boxes
- hdu 5810 Balls and Boxes (数学)
- HDU 5810 Balls and Boxes(概率)
- HDU 5810Balls and Boxes【二项分布】
- HDU-5810-Balls and Boxes(方差期望)
- [HDU 5810] Balls and Boxes (随机变量计算期望)
- HDU 5810 Balls and Boxes (找公式)
- hdu 5810 Balls and Boxes 推公式 ( 多校)
- 2016多校7 HDU 5810 Balls and Boxes
- HDU-5810-Balls and Boxes-数学推导(找规律)
- 数学,期望(Balls and Boxes,HDU 5810)
- Balls and Boxes
- Boxes and Balls
- HDU5810 Balls and Boxes
- HDU5810-Balls and Boxes
- Balls and Boxes CodeForces
- 水池数目
- 类加载器ClassLoader
- iOS_nil、Nil、NULL、NSNull的区别
- 线性筛选求素数
- 笨方法学python(本文为阅读时从此书摘录的笔记) 第一天
- HDU 5810 Balls and Boxes (打表)
- 【刷题剑指offer】数组中的逆序对
- 图像识别--Java中使用openCV提取Hog特征通过SVM训练实现图像识别
- 17.7.13B组总结
- python3爬取淘宝信息!
- 树状数组总结——详解(单点/区间查询, 单点/区间修改, 逆序对)
- hdu 1698 (延迟标记+区间修改+区间求和)
- Codeforces #713C: Sonya and Problem without a Legend 题解
- POJ 1637 Sightseeing tour (欧拉路判定 网络流)