首页 > 其他 > 详细

[P4550] 收集邮票 - 概率期望,dp

时间:2020-02-01 17:57:08      阅读:70      评论:0      收藏:0      [点我收藏+]

套路性地倒过来考虑,设\(f[i]\)表示拥有了\(i\)种票子时还需要多少次购买,\(g[i]\)表示还需要多少钱
\(g[i]\)递推式时注意把代价倒过来(反正总数一定,从顺序第\(1\)张开始加钱和倒序没有区别)

#include <bits/stdc++.h>
using namespace std;

const int N = 10005;
double f[N],g[N];
int n;

int main() {
    cin>>n;
    for(int i=n-1;i>=0;--i) {
        f[i]=f[i+1]+1.0*n/(n-i);
    }
    for(int i=n-1;i>=0;--i) {
        g[i]=1.0*i/(n-i)*(f[i]+1)+g[i+1]+f[i+1]+1;
    }
    printf("%.2lf\n",g[0]);
}

[P4550] 收集邮票 - 概率期望,dp

原文:https://www.cnblogs.com/mollnn/p/12248928.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!