【CF1267G】Game Relics(贪心,期望)
题意:
有 \(n\) 种物品,你要全部获得它们。有两种购买方式:
- 花费 \(c_i\) 购买第 \(i\) 种物品。
- 花费 \(x\),然后随机获得一种物品,如果该种物品已经被获得过了,它将返还你 \(\frac x2\) 的钱。
求最优策略下,获得这 \(n\) 种物品的期望花费。
\(n\leq 100\),\(x,\sum c_i\leq 10000\)。
题解:
考虑将物品分成两类:
第一类物品满足 \(c_i\leq \frac x2\)。对于这类物品,如果先抽中了它,那么花费 \(x\);但如果我们先把它买下,那么同样抽中它,但只会花费 \(c_i+\frac x2\leq x\)。所以这类物品我们一定先买下。
第二类物品满足 \(c_i>\frac x2\)。对于这类物品,如果我们先买了它、而在之后有抽奖,那么如果我们把抽奖操作提前,那么如果抽中它,此时只用花费 \(x\),但原来花费了 \(c_i+\frac x2>x\);如果没抽中它,那么我们再买下它和在抽之前买下它是等价的。所以对于这类物品,我们显然是先抽奖,然后在某个时刻把剩下没抽中的物品全部买光。既然是这样,我们不妨将原题目的第一种购买方式变为随机选一个未购买的物品 \(i\) 并花费 \(c_i\) 购买它,因为反正在最优策略下随不随机是一样的。
提前处理好第一类物品,现在只考虑第二类物品。假设当前还剩 \(k\) 个物品,那么如果使用抽奖,抽中一个新物品的期望花费是只跟 \(k\) 有关的,记为 \(d_k\)。假设剩下的这 \(k\) 个物品的 \(c_i\) 的和为 \(S\),我们要决策当前是随机买还是抽奖。由于这两种决策到某种后继状态的概率是相同的,所以我们只需考虑当前步的期望花费最小即可,也就是 \(d_k\) 和 \(\frac Sk\) 的比较。
知道了策略之后如何求答案?注意到 \(\sum c_i\) 不大,直接 DP 即可。