【CF1267G】Game Relics(貪心,期望)
阿新 • • 發佈:2022-12-10
題意:
有 \(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\)
知道了策略之後如何求答案?注意到 \(\sum c_i\) 不大,直接 DP 即可。