zoukankan      html  css  js  c++  java
  • hdu 4465 Candy(2012 ACM-ICPC 成都现场赛)

             简单概率题,可以直接由剩余n个递推到剩余0个。现在考虑剩余x个概率为(1-p)的candy时,概率为C(2 * n - x, x) * pow(p, n + 1)  *pow(1 - p, n - x);

    在写出x - 1的情况,就可以发现组合数可以直接递推,所以可以直接求。但是考虑到p可能很小,n可能很大,这样的话直接用pow函数会丢失精度,我们可以把double类型写成log10的形式,这样可以保存精度。

    #include<algorithm>
    #include<iostream>
    #include<cstring>
    #include<cstdlib>
    #include<fstream>
    #include<sstream>
    #include<bitset>
    #include<vector>
    #include<string>
    #include<cstdio>
    #include<cmath>
    #include<stack>
    #include<queue>
    #include<stack>
    #include<map>
    #include<set>
    #define FF(i, a, b) for(int i=a; i<b; i++)
    #define FD(i, a, b) for(int i=a; i>=b; i--)
    #define REP(i, n) for(int i=0; i<n; i++)
    #define CLR(a, b) memset(a, b, sizeof(a))
    #define debug puts("**debug**")
    #define LL long long
    #define PB push_back
    #define SL(a) strlen(a)
    using namespace std;
    
    const int N = 11;
    const int MOD = 1e9 + 7;
    
    int main()
    {
        int n, cas = 1, i, j;
        double p, ans, now;
        while(scanf("%d%lf", &n, &p) != EOF)
        {
            now = log10(p) * (n + 1);
            ans = pow(10.0, now) * n;
            for(i = n - 1; i > 0; i --)
            {
                now = now + log10(2 * n - i + 0.0) - log10(n - i + 0.0) + log10(1 - p);
                ans += pow(10.0, now) * i;
            }
            p = 1 - p;
            now = log10(p) * (n + 1);
            ans += pow(10.0, now) * n;
            for(i = n - 1; i > 0; i --)
            {
                now = now + log10(2 * n - i + 0.0) - log10(n - i + 0.0) + log10(1 - p);
                ans += pow(10.0, now) * i;
            }
            printf("Case %d: %.6lf
    ", cas ++, ans);
        }
    }
    


     

  • 相关阅读:
    apache反向代理和负载均衡
    maven学习3,如何创建一个web项目
    初识maven及其安装步骤!!
    初识Eclipse!!
    登录页面!!!
    面向对象的三大要素
    【转载】fatal error C1010: unexpected end of file while looking for precompiled header directive
    C++ 读取XML 和TXT
    python +Libsvm 配置
    C++ 引用 和 指针 心得
  • 原文地址:https://www.cnblogs.com/riskyer/p/3295363.html
Copyright © 2011-2022 走看看