HDOJ 题目4465 Candy(快速排列组合)
2014-12-12 20:38
253 查看
Candy
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2238 Accepted Submission(s): 964
Special Judge
[align=left]Problem Description[/align]
LazyChild is a lazy child who likes candy very much. Despite being very young, he has two large candy boxes, each contains n candies initially. Everyday he chooses one box and open it. He chooses the first box with probability p and
the second box with probability (1 - p). For the chosen box, if there are still candies in it, he eats one of them; otherwise, he will be sad and then open the other box.
He has been eating one candy a day for several days. But one day, when opening a box, he finds no candy left. Before opening the other box, he wants to know the expected number of candies left in the other box. Can you help him?
[align=left]Input[/align]
There are several test cases.
For each test case, there is a single line containing an integer n (1 ≤ n ≤ 2 × 105) and a real number p (0 ≤ p ≤ 1, with 6 digits after the decimal).
Input is terminated by EOF.
[align=left]Output[/align]
For each test case, output one line “Case X: Y” where X is the test case number (starting from 1) and Y is a real number indicating the desired answer.
Any answer with an absolute error less than or equal to 10-4 would be accepted.
[align=left]Sample Input[/align]
10 0.400000
100 0.500000
124 0.432650
325 0.325100
532 0.487520
2276 0.720000
[align=left]Sample Output[/align]
Case 1: 3.528175
Case 2: 10.326044
Case 3: 28.861945
Case 4: 167.965476
Case 5: 32.601816
Case 6: 1390.500000
[align=left]Source[/align]
2012 Asia Chengdu Regional Contest
[align=left]Recommend[/align]
liuyiding | We have carefully selected several similar problems for you: 5141 5140 5139 5138 5137
题目大意:每个盒子都有n个糖,选择第一个箱子的概率是p,另一个是q。每次随机选择一个箱子并取一颗糖,若无糖可取,则换箱子。问换箱子的时候,另一个箱子的剩余糖数量的期望。而且不是一个箱子没有时的期望,而是一个箱子没有了,再取到这个箱子时的期望。
公式:
![](http://www.2cto.com.c2.open.360cdn.cn/uploadfile/2014/1031/20141031110701502.jpg)
快速排列组合函数:C(n,m)=exp(lggc(n,m))
ac代码
#include<stdio.h> #include<string.h> #include<math.h> double f[400005]; double logc(int n,int m) { return f -f[m]-f[n-m]; } int main() { double p,q; int n,i,j,k,c=0; f[0]=0; for(i=1;i<400005;i++) f[i]=f[i-1]+log(i*1.0); while(scanf("%d%lf",&n,&p)!=EOF) { double ans=0; q=1-p; for(k=0;k<n;k++) ans+=(n-k)*(exp(logc(n+k,k)+(n+1)*log(p)+k*log(q))+exp(logc(n+k,k)+(n+1)*log(q)+k*log(p))); printf("Case %d: %.6lf\n",++c,ans); } }
相关文章推荐
- hdu 4465 Candy 组合数(快速排列组合)
- hdu 4465 Candy (快速排列组合 )
- Hdu 4465 Candy (快速排列组合+概率)
- hdu4465 Candy(快速排列组合+概率)
- hdu4465 Candy(快速排列组合+概率)
- hdu 4465 Candy 快速全排列
- 排列组合的题目
- 一道递归思想的排列组合题目
- [省选前题目整理][HDU 1521]排列组合(生成函数)
- HDOJ热身赛1004--复习下排列组合公式
- HDOJ, 杭电1465, 不容易系列之一, 排列组合错排题。。
- hdoj 2049 不容易系列之(4)——考新郎 【全错位排列】【组合数】
- 快速求排列组合 lucas定理
- HDOJ 题目4549 M斐波那契数列(数学,矩阵快速幂,费马小定理)
- HDOJ 题目3003Pupu(数学,(n^e)%m的快速求法)
- HDOJ 题目2855 Fibonacci Check-up(矩阵快速幂)
- HDOJ 1799 循环多少次? (排列组合+打表)
- [bzoj 1008] [HNOI2008]越狱:排列组合,快速幂
- hdu5363 排列组合+快速幂
- POJ 题目1942 Paths on a Grid(排列组合,水)