2012 ICPC/ACM 成都现场赛 Candy

题目来源:

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[n] - 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 ;
}

时间: 2024-10-08 08:07:40

2012 ICPC/ACM 成都现场赛 Candy的相关文章

hdu 4465 Candy 2012 成都现场赛

1 /** 2 对于大数的很好的应用,,缩小放大,,保持精度 3 **/ 4 #include <iostream> 5 #include <cmath> 6 #include <algorithm> 7 #include <cstdio> 8 using namespace std; 9 10 int main() 11 { 12 double n,p; 13 int cnt =1; 14 while(cin>>n>>p){ 15

Go Deeper(2010成都现场赛题)(2-sat)

G - Go Deeper Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Description Here is a procedure's pseudocode: go(int dep, int n, int m) begin output the value of dep. if dep < m and x[a[dep]] + x[b[dep]] != c[dep] then go(dep +

Error Curves(2010成都现场赛题)

F - Error Curves Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Description Josephina is a clever girl and addicted to Machine Learning recently. She pays much attention to a method called Linear Discriminant Analysis, which h

2014 acm鞍山现场赛总结

好像大家都习惯打完比赛写总结,我也来水一发好了.. 记一下流水账,那么多第一次献给了acm,不记一下就白去那么远的地方了.. 首先比赛前网上买了机票跟火车票了.比赛前一天早上6点钟起来收拾东西6点半坐地铁去机场.第一次来机场,太高大上啦,感觉就像大乡里入城差不多,这里的随便一个做前台的英语都完虐我几十条街,领了个机票傻乎乎的过了安检去了机票口,提前来了半个钟,逛了下机场的商店,尼玛全都没写价格,一看就知道各种贵,只好路上拍拍灰机场,吃了点垃圾食品就上机了,上机五分钟前发现还有个候机宝的东西,尼玛

HDU-4472-Count (2012 ACM/ICPC成都现场赛)

Count Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1850    Accepted Submission(s): 1200 Problem Description Prof. Tigris is the head of an archaeological team who is currently in charge of a

HDU-4464-Browsing History (2012 ACM/ICPC成都现场赛!)

Browsing History Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3065    Accepted Submission(s): 1692 Problem Description One day when you are going to clear all your browsing history, you come

hdu 4431 第37届ACM/ICPC 天津赛区现场赛A题 枚举

题意:就是给了13张牌.问增加哪些牌可以胡牌.m是数字,s是条,p是筒,c是数字 胡牌有以下几种情况: 1.一个对子 +  4组 3个相同的牌或者顺子.  只有m.s.p是可以构成顺子的.东西南北这样的牌没有顺子. 2.7个不同的对子. 3.1m,9m,1p,9p,1s,9s,1c,2c,3c,4c,5c,6c,7c.  这13种牌每种都有,而且仅有这13种牌.肯定是有一种2张.其他的1张. 模拟即可,第一个对子的情况需要枚举 很麻烦的模拟,但是貌似稳银的很需要这题,所以这种难度必须要弄懂,加油

2011 ACM/ICPC 福州赛区现场赛8.7

A题是哪个象棋的题: B题hdu4122: 好像是水过去的,看到题解要用队列,就是简单的枚举加判断条件过去的. C题hdu4123: 用到MRQ算法查询区间内的最大最小值 G题hdu4127 是个填颜色的题: 是把所有点分成3部分,已经和00连通的,还有就是下一次需要填的颜色部分,剩下的部分就是填不了的, 用IDA算法,分开写几个小程序,填充颜色同一个颜色的程序,当前状况需要改变最少颜色的次数,还有就是染某个颜色加入格子的数(这个就是看染着个颜色有没有用) 再有就是IDA程序,每次都是跑改变成0

2014 ACM/ICPC 牡丹江赛区现场赛

最近突然感觉状态不佳,可能是天冷的缘故? 赛后来做牡丹江赛区的题目 [A]3819 Average Score -- 签到题 [B] [C] [D] [E] [F] [G] [H] [I] [J] [K]3829 Known Notation -- 贪心 + 模拟 [A]3819 Average Score -- 签到题 Average Score Time Limit: 2 Seconds                                     Memory Limit: 65