bzoj 1426 收集郵票 期望dp

2021-08-03 10:19:36 字數 985 閱讀 3148

1426: 收集郵票

time limit: 1 sec memory limit: 162 mb

submit: 392 solved: 319

[submit][status][discuss]

description

有n種不同的郵票,皮皮想收集所有種類的郵票。唯一的收集方法是到同學凡凡那裡購買,每次只能買一張,並且買到的郵票究竟是n種郵票中的哪一種是等概率的,概率均為1/n。但是由於凡凡也很喜歡郵票,所以皮皮購買第k張郵票需要支付k元錢。 現在皮皮手中沒有郵票,皮皮想知道自己得到所有種類的郵票需要花費的錢數目的期望。

input

一行,乙個數字n n<=10000

output

要付出多少錢. 保留二位小數

sample input

3 sample output

21.25

首先考慮如果每買一張郵票都是1元錢

f[i]表示當前已經有i張,要集齊所有郵票期望的花費。(但每張郵票都是1元的基礎上,所以f[i]又可以表示要集齊所有郵票期望買多少張)

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

但現在每多買一張郵票就要多花1元。

我們假設買倒數第i張花費i元。

定義g[i]為當前買了i張郵票,要集齊所有郵票期望的花費。

g[i]=i/n*(g[i]+f[i]+1)+(n-i)/n*(g[i+1]+f[i+1]+1)//f[i]+1就可以表示買當前郵票的花費了

**:

#include

#include

#include

#include

using

namespace

std;

const

int n = 100010;

double n;

double f[n],g[n];

int main()

BZOJ1426 收集郵票 期望

bzoj1426 收集郵票 有n種不同的郵票,皮皮想收集所有種類的郵票。唯一的收集方法是到同學凡凡那裡購買,每次只能買一張,並且買到的郵票究竟是n種郵票中的哪一種是等概率的,概率均為1 n。但是由於凡凡也很喜歡郵票,所以皮皮購買第k張郵票需要支付k元錢。現在皮皮手中沒有郵票,皮皮想知道自己得到所有種...

BZOJ 1426 收集郵票 期望DP

有n種不同的郵票,皮皮想收集所有種類的郵票。唯一的收集方法是到同學凡凡那裡購買,每次只能買一張,並且買到的郵票究竟是n種郵票中的哪一種是等概率的,概率均為1 n。但是由於凡凡也很喜歡郵票,所以皮皮購買第k張郵票需要支付k元錢。現在皮皮手中沒有郵票,皮皮想知道自己得到所有種類的郵票需要花費的錢數目的期...

BZOJ1426 收集郵票(期望dp)

題頭 描述 有n種不同的郵票,皮皮想收集所有種類的郵票。唯一的收集方法是到同學凡凡那裡購買,每次只能買一張,並且 買到的郵票究竟是n種郵票中的哪一種是等概率的,概率均為1 n。但是由於凡凡也很喜歡郵票,所以皮皮購買第k 張郵票需要支付k元錢。現在皮皮手中沒有郵票,皮皮想知道自己得到所有種類的郵票需要...