bzoj 1426 收集郵票 求平方的期望

2022-04-30 08:42:06 字數 1100 閱讀 7824

顯然如果收集了k天,ans=k*(k+1)/2=(k^2+k)/2.那麼現在要求的就是這個東西的期望。

設f[i]表示已有i張郵票,收集到n張的期望次數,g[i]表示已有i張郵票,收集到n張的次數的平方的期望。

顯然i這個點有 $\frac$ 的概率走自環,有 $\frac$ 的概率走到i+1這個點。

so $$f[i]=(\frac)\times(f[i]+1)+(\frac)\times(f[i+1]+1)$$

以前一直不懂平方的期望是怎麼求的,今天終於證了一發。$$e((x+1)^2)=\sum_^\infty p(i)*(i+1)^2$$

因為p後邊的那個式子是乙個具體的值所以可以拆開。

$$e((x+1)^2)=\sum_^\infty p(i)*(i+1)^2=\sum_^\infty p(i)*(i^2+2i+1)=\sum_^\infty p(i)*(i^2)+2\times\sum_^\infty p(i)*(i)+1=e[x^2]+2e[x]+1$$

其中倒數第二步是根據期望的線性可加性得來。

這樣x^2的期望就可以由(x-1)^2的期望推來。

所以g[i]和f[i]同理:設s[i]表示在從i點出發走了s[i]步後結束,g[i]=e(s[i]^2)。

$$g[i]=(\frac)\times e((s[i]+1)^2)+(\frac)\times e((s[i+1]+1)^2)$$

$$g[i]=(\frac)\times(g[i]+2\times f[i]+1)+(\frac)\times(g[i+1]+2*f[i+1]+1)$$

最後化簡一下遞推就行了。

1 #include2 #include3 #include4 #include5

#define n 100005

6using

namespace

std;

7double

f[n],g[n];

8int

main()

918 printf("

%.2lf\n

",(g[0]+f[0])/2

);19

return0;

20 }

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...