time limit: 1 sec memory limit: 162 mb
submit: 334 solved: 269
[submit][status][discuss]
有n種不同的郵票,皮皮想收集所有種類的郵票。唯一的收集方法是到同學凡凡那裡購買,每次只能買一張,並且買到的郵票究竟是n種郵票中的哪一種是等概率的,概率均為1/n。但是由於凡凡也很喜歡郵票,所以皮皮購買第k張郵票需要支付k元錢。 現在皮皮手中沒有郵票,皮皮想知道自己得到所有種類的郵票需要花費的錢數目的期望。
一行,乙個數字n n<=10000
要付出多少錢. 保留二位小數
321.25
用f[i]表示已經擁有了i張郵票,則期望還需要購買的郵票數
則f[n]=0
f[i]=f[i]*(i/n)+f[i+1]*((n-i)/n)+1
整理得f[i]=f[i+1]+n/(n-i);
設g[i]為還需要的錢
g[i]=((n-i)/n)*(g[i+1]+f[i+1])+(i/n)*(g[i]+f[i])+1
因為可以視為這張票是1元買的,而後面的每張票都貴了1元
所以要加上f[i+1]或f[i]
然後化簡得g[i]=g[i+1]+f[i+1]+i/(n-i)*f[i]+(n/(n-i))
摘自hzwer
#includeusingnamespace
std;
typedef
double
real;
#define af ((real)n/(real)(n-i))
const
int n=1e5+5
;real f[n],g[n];
intmain()
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...