UVa 1639 (期望) Candy
2014-12-23 20:24
369 查看
题意:
两个盒子里各有n颗糖,每天有p的概率从第一个盒子里取一颗糖,1-p的概率从第二个盒子里去一颗糖。直到某一天打开某个盒子忽然发现没糖了,求另一个盒子里剩余糖果数的期望。
分析:
紫书上面已经分析的很清楚了,而且也给出了解决精度损失问题的方法,就是先取对数然后再乘幂。
代码君
两个盒子里各有n颗糖,每天有p的概率从第一个盒子里取一颗糖,1-p的概率从第二个盒子里去一颗糖。直到某一天打开某个盒子忽然发现没糖了,求另一个盒子里剩余糖果数的期望。
分析:
紫书上面已经分析的很清楚了,而且也给出了解决精度损失问题的方法,就是先取对数然后再乘幂。
#include <cstdio> #include <cmath> const int maxn = 200000 + 5; long double logF[maxn * 2 + 1]; long double logC(int n, int m) { return logF - logF[m] - logF[n-m]; } int main() { //freopen("in.txt", "r", stdin); for(int i = 1; i <= maxn*2; ++i) logF[i] = logF[i-1] + log(i); int n, kase = 0; double p; while(scanf("%d%lf", &n, &p) == 2) { double ans = 0.0; for(int i = 1; i <= n; ++i) { long double c = logC(2*n-i, n); long double v1 = c + (n+1)*log(p) + (n-i)*log(1-p); long double v2 = c + (n+1)*log(1-p) + (n-i)*log(p); ans += i * (exp(v1) + exp(v2)); } printf("Case %d: %.6f\n", ++kase, ans); } return 0; }
代码君
相关文章推荐
- [UVA1639] Candy && 数学期望
- UVA.1639 Candy (期望 高精度)
- UVA 1639——Candy(期望,精度处理)
- 【数学期望】Candy, ACM/ICPC Chengdu 2012, UVa1639 【精度】
- uva 1639 Candy | ACM\ICPC Chengdu 2012 (期望)
- uva1639 Candy 数学期望 对数处理精度
- uva 1639 Candy 大数的对数处理 数学期望
- UVA - 1639 Candy (概率,精度)
- 1639 - Candy (数学期望)
- uva1639 Candy
- UVa 1639 Candy (数学期望+组合数学+高精度存储)
- UVa 1639 Candy
- uva 1639 Candy (对数处理精度)
- UVA - 1639 Candy——期望+log处理精度
- UVA 1639 Candy (组合数+精度)
- uva1639(数学期望,利用对数减少浮点类型数据的精度损失方法)
- UVA 1639(p333)----Candy
- 【Uva1639】概率 + 期望 + 对数处理精度
- 求期望,对数的应用,预处理(糖果,uva 1639)
- UVa1639 - Candy(期望+对数精度处理)