洛谷紫题。。恩mmm。。不慌不慌
题面:
等概率抽取n种邮票(一种可以取多张),
取第k张花费k元,
求取到n种邮票的期望花费。 n<=10000
由于期望花费看起来就和期望次数有关系,那么我们需要
===> 求取到n种邮票的期望次数。
设两个数组,f[ ],g[ ]。
f[i]表示已取i种,直到取到n种的期望次数。
g[i]表示已取i种,直到取到n种的期望花费。
显然f [n] = g [n] =0。
so,f [i] = i/n * f [i] + (n-i) * f[n+1] +1
整理得:f [i] = f[i+1] + n/(n-i)
解释:① 有i/n的概率取到已买过的种类,而该情况达到目标的收益为f [i]
② 有(n-1)/n的概率取到未买过的种类,而该情况达到目标的收益为f [i]
③ 再加上这次自身需要的一次次数
而我们最终答案是g [0]。//从0的状态取到n的花费
看题解得 ,g [i] = i/n * (g [i] + f [i] +1) + (n-i) /n* (g [i+1] + f [i+1] + 1)
整理得:g [i] = i/(n−i) ∗ f [i] + g [i+1] + f [i+1] + n/(n−i)
解释:① 有i/n的概率取到已买过的种类,该情况下,到达的结果是还要花费g[i],并且由于此次的失误,导致之后期望还要买的 f[i]次价格都上涨了1,总体加了f[i],再加上这次的花费1。后半个式子同理。
②上条 supper 抽象啊。那我们考虑为什么这次的花费看作是“1”。因为之后还会加上在他之后上涨的花费,即解释①中f[i]加上的。
③而我们推算f[i]时收益为什么是单纯的f[i]或f[i+1]呢?因为此次的决策并不影响其他f[]到达目标的次数。而g[ ]的花费是会随决策增加的。
鱼头所示 ↓ 。横坐标表示时间(意会一下?),纵坐标表示买单张邮票的花费。
此次的失误使得价格k总体升高1(升高为红色线),所以要加上f [i],绿点则表示后面加上的“1”。