天天看點

2018.10.31 NOIP訓練 鍛造(方程式期望入門題)(期望dp)

傳送門

根據題目列出方程:

f i = p i ∗ ( f i − 1 + f i − 2 ) + ( 1 − p i ) ∗ ( f i + 1 + f i ) f_i=p_i*(f_{i-1}+f_{i-2})+(1-p_i)*(f_{i+1}+f_i) fi​=pi​∗(fi−1​+fi−2​)+(1−pi​)∗(fi+1​+fi​)

但這會牽扯到 i i i之後的狀态沒法做。

是以考慮如果合成失敗會變成一個等級為 i − 2 i-2 i−2的武器。

相當于消耗了一個等級為 i − 1 i-1 i−1的武器。

是以 f i = p i ∗ ( f i − 1 + f i − 2 ) + ( 1 − p i ) ∗ ( f i − 1 + f i ) f_i=p_i*(f_{i-1}+f_{i-2})+(1-p_i)*(f_{i-1}+f_i) fi​=pi​∗(fi−1​+fi−2​)+(1−pi​)∗(fi−1​+fi​)

然後移項:

p i f i = f i − 1 + p i ∗ f i − 2 p_if_i=f_{i-1}+p_i*f_{i-2} pi​fi​=fi−1​+pi​∗fi−2​

是以 f i = f i − 1 p i + f i − 2 f_i=\frac{f_{i-1}}{p_i}+f_{i-2} fi​=pi​fi−1​​+fi−2​

代碼