bzoj1426 [收集邮票] 期望概率DP进阶

来源:互联网 发布:go并发编程实战完整版 编辑:程序博客网 时间:2024/06/06 22:45

太奇妙了

f [i] 表示已经买了 i 种 , 买到 n 种的期望购买次数

f [i] = f [i+1] + n / ( n - i )

g [i] 表示已经买了 i 种 的期望 出的钱

g [i] = ( f [i] * i + ( g [ i + 1 ] + f [ i + 1 ] ) * ( n - i ) + n ) / ( n - i )

#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int N = 1e4 + 10 ;double f [N] , g [N] ;int main () {    double n ;    scanf ( "%lf" , & n ) ;    for ( int i = n - 1 ; i >= 0 ; -- i ) {        f [i] = f [ i + 1 ] + 1.0 * n / ( n - i ) ;        g [i] = 1.0 * ( f [i] * i + ( g [ i + 1 ] + f [ i + 1 ] ) * ( n - i ) + n ) / ( n - i ) ;      }    printf ( "%.2f" , g [0] ) ;    return 0 ;}
原创粉丝点击