1. 程式人生 > 其它 >牛客 11257 D Gambling Monster 題解

牛客 11257 D Gambling Monster 題解

傳送門


【大意】

初始時,"土塊"有一個數字 \(0\) 。每一輪,他有 \(p_i(0\leq i<n=2^k)\) 的概率抽到數字 \(i\) 。若當前他的數字異或上抽中的數字,將會變得更大,那他會異或上這個數字。問他得到 \((n-1)\) 的期望步數。


【分析】

HL:以後遇到概率 dp 通通倒著跑

所以我們設 \(E(x)\) 表示 \(x\)\((n-1)\) 的期望步數,則有:

\(\displaystyle E(x)=\sum_{x\oplus y=z\\x<z}p_y[E(z)+1]+\sum_{x\oplus y=z\\x\geq z}p_y[E(x)+1]\)

即當轉到的數字會使得結果更大,就異或上,所以貢獻直接由新的結果轉移而來;當不會時,就不異或上了,所以貢獻由自己轉移

為了方便,我們記 \(\displaystyle \sum_{x\oplus y=z\\x<z}p_y=S_x\),則:

\(\displaystyle E(x)=\sum_{x\oplus y=z\\x<z}p_y[E(z)+1]+(1-S_x)[E(x)+1]\)

\(\displaystyle E(x)-(1-S_x)E(x)=\sum_{x\oplus y=z\\x<z}p_yE(z)+S_x+(1-S_x)\)

\(\displaystyle E(x)={1\over S_x}[\sum_{x\oplus y=z\\x<z}p_yE(z)+1]\)


【程式碼】