Luogu P4550 收集郵票 題解

2022-10-04 01:03:08 字數 1262 閱讀 2084

題目傳送門

有 \(n\) 種不同的郵票,皮皮想收集所有種類的郵票。唯一的收集方法是到同學凡凡那裡購買,每次只能買一張,並且買到的郵票究竟是 \(n\) 種郵票中的哪一種是等概率的,概率均為 \(\frac\)。但是由於凡凡也很喜歡郵票,所以皮皮購買第 \(k\) 次郵票需要支付 \(k\) 元錢。

現在皮皮手中沒有郵票,皮皮想知道自己得到所有種類的郵票需要花費的錢數目的期望。

資料範圍: \(n\le 10000\)

根據概率題的套路,我們需要設已經……還需要……的期望

我們設 \(g_i\) 為已經買了 \(i\) 張不同的郵票時,需要買到所有種類的郵票的期望錢數。

但是我們發現這樣還是不能做,因為我們需要知道這是期望的次數。

於是我們設 \(f_i\) 為已經買了 \(i\) 張不同的郵票是,需要買到所有種類的郵票的期望錢數。

首先我們需要得到 \(f_i\)。

分兩種情況討論:取到新的種類的郵票和沒有取到新種類郵票。

如果取到新的種類,概率為 \(\frac\),期望次數為 \(f_\);如果沒有取到,概率為 \(\frac\),概率為 \(f_i\),當然取了一次還要加上 \(1\)。

即 $$f_i=\frac\times f_+\frac\times f_i+1$$

化簡得 $$f_i=f_+\frac$$

然後考慮求 \(g_i\)。

顯然還是分上面兩種情況討論。

如果取到新的種類,概率為 \(\frac\),那麼這一次需要用的錢數為 \(f_+1\),接下來錢數的期望是 \(g_\)。

如果沒有取到新的種類,概率為 \(\frac\),這一次用的錢數為 \(f_i+1\),接下來用的錢數的期望還是 \(g_i\)。

即 $$g_i=\frac\times\left(g_+f_+1\right)+\frac\times\left(g_i+f_i+1\right)$$

化簡得 $$g_i=\frac\times \left(f_i+1\right)+g_+f_+1$$

**非常簡單:

int n; double f[10039],g[10039];

scanf("%d,&n"); int i; f[n]=g[n]=0;

for(i=n-1;i>=0;i--) f[i]=f[i+1]+1.0*n/(n-i),g[i]=1.0*i/(n-i)*(f[i]+1)+g[i+1]+f[i+1]+1;

printf("%0.2lf",g[0]); return 0;

洛谷4550 收集郵票(期望DP)

為啥這道題都是道許可權題。雖然 很短,但是要想清楚還是很難。令f i 表示當前已經擁有了i種郵票,要擁有n種郵票的期望操作次數。取到已得到的郵票概率為i n frac ni 取到新的郵票的概率為n i n frac nn i 所以可以得到遞推式f i f i times in frac ni f i...

Joyoi 收集郵票

題鏈 題解.1 期望dp,平方的期望不等於期望的平方。在這個題上坑了好久,也算是對期望的理解又深了一些。很好的題解 再闡述一下平方的期望是在什麼情況下可以遞推的 對於乙個隨機變數x,我們知道其每個取值的概率,那麼我們容易由定義得出這個隨機變數的期望e x p1 x1 p2 x2 以及這個隨機變數的平...

1426 收集郵票

time limit 1 sec memory limit 162 mb submit 334 solved 269 submit status discuss 有n種不同的郵票,皮皮想收集所有種類的郵票。唯一的收集方法是到同學凡凡那裡購買,每次只能買一張,並且買到的郵票究竟是n種郵票中的哪一種是等...