2012 ICPC/ACM 成都现场赛 Candy
2014-06-26 15:09
375 查看
题目来源:
http://acm.hdu.edu.cn/showproblem.php?pid=4465
题意:输入m,p;从两个盒子里各有n颗糖,每天取一颗,发现其中
一个盒子空,求另外一个盒子糖果数的期望。p,1-p为取糖概率;
分析: 给盒子编号 A,B ,
设另外一个盒子(为B) 剩 n - k 个 , 则 在过去的 (n + k)次 有 k 次 取到B , 且当前这次取到A 。
同理 对另外一个盒子为(A) 。
则 期望的公式为:
Σ( n - k) * C(n + k , k) * ( (1 - p) ^k * p ^(n + 1) + p ^k * (1 - p)^(n + 1) ) k = 0 ,1 ... n
对于 p^n 次方 肯定 爆double , 于是采用 先 log 再exp ,求值。
C( n + k , k) = (n + k)! / ( n ! * k !)
令 f(n) = n! ,则 f(n) = f(n - 1) + log(n)
log(p ^n) = n log (p)
代码如下:
http://acm.hdu.edu.cn/showproblem.php?pid=4465
题意:输入m,p;从两个盒子里各有n颗糖,每天取一颗,发现其中
一个盒子空,求另外一个盒子糖果数的期望。p,1-p为取糖概率;
分析: 给盒子编号 A,B ,
设另外一个盒子(为B) 剩 n - k 个 , 则 在过去的 (n + k)次 有 k 次 取到B , 且当前这次取到A 。
同理 对另外一个盒子为(A) 。
则 期望的公式为:
Σ( n - k) * C(n + k , k) * ( (1 - p) ^k * p ^(n + 1) + p ^k * (1 - p)^(n + 1) ) k = 0 ,1 ... n
对于 p^n 次方 肯定 爆double , 于是采用 先 log 再exp ,求值。
C( n + k , k) = (n + k)! / ( n ! * k !)
令 f(n) = n! ,则 f(n) = f(n - 1) + log(n)
log(p ^n) = n log (p)
代码如下:
const int Max_N = 200010 ; double f[Max_N] ; double loglog(int n , int k){ return f[n + k] - f - f[k] ; } int main(){ int n , i , T = 1; double p ; f[0]= 0 ; f[1] = 0 ; for(i = 2 ; i < Max_N ; i ++) f[i] = f[i -1] + log(1.0 * i) ; while(scanf("%d%lf" , &n ,&p) != EOF){ double ans = 0.0 ; double p1 = log(p) ; double p2 = log(1 - p) ; for(i = 0 ; i <= n ; i++){ ans += (n - i) * exp(loglog(n , i) + i * p2 + (n + 1) * p1) ; ans += (n - i) * exp(loglog(n , i) + i * p1 + (n+1) * p2) ; } printf("Case %d: %.6lf\n" , T ++ , ans) ; } return 0 ; }
相关文章推荐
- hdu 4465 Candy(2012 ACM-ICPC 成都现场赛)
- hdu 4465 Candy(2012 ACM-ICPC 成都现场赛)
- 【数学期望】【2012 ACM/ICPC 成都赛区现场赛】【B.Candy】
- 2012ACM/ICPC成都赛区现场赛I题---Count(hdu4472)
- hdu 4472 Count (2012 ACM-ICPC 成都现场赛)
- 【DP】【2012 ACM/ICPC 成都赛区现场赛】【I.Count】
- hdu 4472 Count (2012 ACM-ICPC 成都现场赛)
- HDU-4472-Count (2012 ACM/ICPC成都现场赛)
- HDU-4464-Browsing History (2012 ACM/ICPC成都现场赛!)
- 2012ACM/ICPC成都赛区现场赛A题---Browsing History(hdu4464)
- 2012 ACM/ICPC 成都赛区网络赛A题解题报告
- 2013 ACM-ICPC 亚洲区域赛 成都现场赛I 解题报告
- HDU4472-第37届ACM/ICPC成都现场赛I题
- 2011 ACM/ICPC 成都赛区(为2013/10/20成都现场赛Fighting)
- HDU 4790 2013 ACM/ICPC 成都赛区现场赛 J. Just Random
- ACM/ICPC 2012金华regional现场赛C题 hdu4444 离散化、最短路
- uva 1639 Candy | ACM\ICPC Chengdu 2012 (期望)
- 2013 ACM-ICPC 亚洲区域赛 成都现场赛E (Exhausted Robot)
- 2012 ACM/ICPC 成都赛区网络赛 HDU 4296
- hdu 4473 Exam (2012ACM成都赛区现场赛J题)