Joyoi 收集郵票

2022-03-18 02:48:35 字數 1694 閱讀 9698

題鏈:

題解.1:

期望dp,(平方的期望不等於期望的平方。。。)

在這個題上坑了好久,也算是對期望的理解又深了一些。

很好的題解:

再闡述一下平方的期望是在什麼情況下可以遞推的:

對於乙個隨機變數x,我們知道其每個取值的概率,

那麼我們容易由定義得出這個隨機變數的期望e(x)=p1*x1+p2*x2+...,

以及這個隨機變數的平方的期望e(x²)=p1*x1²+p2*x2²+...。

現在由於種種原因,假設我們需要求出在這個隨機變數的每個取值都加1但是概率不變的情況下的新的平方的期望e'(x²)=p1*(x1+1)²+p2*(x2+1)²+...,

(注意,只是權值改變,對應概率未變)

那麼這個時候就可以用平方的期望的遞推式子了:e'(x²)=e(x²)+2*e(x)+1

反觀這類題目的dp轉移往往是分為當前狀態成功與否兩種情況,

而當我們確定了某種情況後,接下來就需要計算當前+後面的東西的總期望,再乘上這種情況的概率。

因為已確定了是成功還是失敗,所以當前狀態對期望的貢獻只是在隨機變數的取值上,而沒有影響到其概率分布,所以才可以直接使用平方的期望的遞推式子。

**.1:

#include#define maxn 10005

using namespace std;

double g[maxn],f[maxn];

int n;

int main()

cout<題解.2:

求期望。。。

正向列舉已經收集了i個,並計算收集第i個時的相關資訊與貢獻,

令a[i]表示收集了i個時期望購買了a次。

那麼a[i+1]=a[i]+n/(n-i) (加上收集第i+1個時期望的購買次數)

然後要求收集第i+1個時期望的花費,

首先之前已經期望購買了a次,那麼我們考慮:

首先一定要先買一次,**為a+1

如果沒買到(概率為i/n),再買一次,**為a+2

如果還沒買到(概率為(i/n)²),在買一次,**為a+3

....(子子孫孫,無窮匱也。。。)

那麼可以列出期望花費的式子:令p=i/n

a=(a+1)+(a+2)*p+(a+3)*p²+(a+4)*p³+.... [1]式

然後我們要求a的值,用錯位相減法的得到,即:

a*p= (a+1)*p+(a+2)*p²+(a+3)*p³+.... [2]式

[1]式-[2]式:

(1-p)*a=a+1+p+p²+p³+...,是乙個無窮項的等比數列

=a+1/(1-p)

所以得到a=(a+1/(1-p))/(1-p)

然後把a加進答案ans即可,(期望的線性可加性嘛,a即表示收集第i+1個所期望的花費)

**.2:

#include#define maxn 100005

using namespace std;

double p,a,ans;

int n;

int main()

cout

}

1426 收集郵票

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

概率DP 收集郵票

問題 h 收集郵票 時間限制 1 sec 記憶體限制 162 mb 題目描述 有n種不同的郵票,皮皮想收集所有種類的郵票。唯一的收集方法是到同學凡凡那裡購買,每次只能買一張,並且買到的郵票究竟是n種郵票中的哪一種是等概率的,概率均為1 n。但是由於凡凡也很喜歡郵票,所以皮皮購買第k張郵票需要支付k元...

BZOJ 1426 收集郵票

題目 1426 收集郵票 time limit 1 sec memory limit 162 mb description 有n種不同的郵票,皮皮想收集所有種類的郵票。唯一的收集方法是到同學凡凡那裡購買,每次只能買一張,並且買到的郵票究竟是n種郵票中的哪一種是等概率的,概率均為1 n。但是由於凡凡也...