HDU 4465 candy

来源:互联网 发布:大门知香 编辑:程序博客网 时间:2024/05/21 10:22

OJ题目:click here~~

题目分析:这里说的很好了,点我就到~~



AC_CODE

int n ;double p ;double f[40008] ;double C(int k){    return f[n + k] - f[k] - f[n] ;}int main(){    int i , j , k , T = 1 ;    f[1] = 0 ;    for(i = 2;i <= 40000;i++)        f[i] = f[i - 1] + log(1.0 * i) ;    while(cin >> n >> p){        double p1 = log(1.0 * p) ;        double p2 = log(1.0 * (1 - p)) ;        double p11= (n + 1) * p1 ;        double p22 = (n + 1) * p2 ;        double sum = 0 ;        for(i = 0;i < n;i++)            sum += (n - i) * (exp(C(i) + p11 + i * p2) + exp(C(i) + p22 + i * p1)) ;        printf("Case %d: %f\n",T++ , sum) ;    }    return  0 ;}


0 0