有n種不同的郵票,皮皮想收集所有種類的郵票。唯一的收集方法是到同學凡凡那裡購買,每次只能買一張,並且
買到的郵票究竟是n種郵票中的哪一種是等概率的,概率均為1/n。但是由於凡凡也很喜歡郵票,所以皮皮購買第k
張郵票需要支付k元錢。現在皮皮手中沒有郵票,皮皮想知道自己得到所有種類的郵票需要花費的錢數目的期望。
一行,乙個數字n, n<=10000
要付出多少錢. 保留二位小數
題解:
挺神的一道期望 $dp$.
令 $f_$ 表示已經有 $i$ 種不同的郵票,還需購買的期望次數.
令 $g_$ 表示已經有 $i$ 種不同的郵票,還需花的期望錢數.
先考慮 $f_$ 怎麼求.
依據定義,不難得知 $f_=0$.
而 $f_=p(沒抽到新的)\times 次數 + p(抽到新的)\times 次數$.
即 $f_=\frac\times(f_+1)+\frac\times(f_+1)$.
整理,得 $f_=\frac+f_$.
再考慮 $g_$
$g_=(g_+1+f_)\times\frac+(g_+1+f_)\times\frac$.
考慮一下具體含義:
依據題目,抽到第 $k$ 張牌的代價為 $k$ 元.
總代價與抽到卡牌的順序是無關的.
我們就可以預設當前抽到的卡牌代價是 $1$ 元,後面的卡牌依次排開.
考慮未抽到新卡牌的情況:
已經有 $i$ 種牌到終止局面的代價為 $f_$,抽到當前卡牌的代價已被我們定義為 $1$. 代價是乙個依次加 $1$ 的數列,等同於當前局面
到達 $f_$ 後,每張卡牌的代價都要比原來多 $1$.
而根據我們定義的方程,已有 $i$ 張後,我們期望抽的次數是 $f_$.
那麼,對於 $f_$ 張卡片,每張的**都加 $1$ 即可.
對於 $g_$ 的情況同理即可.
$g_=(g_+1+f_)\times\frac+(g_+1+f_)\times\frac$,整理一下即可.
#include using namespace std;double n,f[10010],s[10010];
int main()
printf("%.2f",f[0]);
return 0;
}
BZOJ 1426 收集郵票
題目 1426 收集郵票 time limit 1 sec memory limit 162 mb description 有n種不同的郵票,皮皮想收集所有種類的郵票。唯一的收集方法是到同學凡凡那裡購買,每次只能買一張,並且買到的郵票究竟是n種郵票中的哪一種是等概率的,概率均為1 n。但是由於凡凡也...
BZOJ 1426 收集郵票
有n種不同的郵票,皮皮想收集所有種類的郵票。唯一的收集方法是到同學凡凡那裡購買,每次只能買一張,並且買到的郵票究竟是n種郵票中的哪一種是等概率的,概率均為1 n。但是由於凡凡也很喜歡郵票,所以皮皮購買第k張郵票需要支付k元錢。現在皮皮手中沒有郵票,皮皮想知道自己得到所有種類的郵票需要花費的錢數目的期...
bzoj 1426 收集郵票
f i 當前已擁有i種郵票,還需要買的郵票數的期望值。g i 當前已擁有i種郵票,還需要的錢的期望值。每張郵票初始都是1元錢,每買一張郵票,還沒購買的郵票每張都漲價1元。f i 1 n i n f i 1 i n f i f i f i 1 n n i g i 1 n i n g i 1 f i 1...