1. 程式人生 > >bzoj5292:[Bjoi2018]治療之雨

bzoj5292:[Bjoi2018]治療之雨

n-1 答案 被攻擊 -i 由於 概率期望 inline 攻擊 什麽

首先設\(m\)為隨從個數,\(k\)為暗影打擊裝甲的個數,\(p\)為剩余生命值,\(n\)為生命上限

然後考慮每個回合受到傷害,設\(A_i\)為每個回合被攻擊\(i\)次的概率
\[ A_i=C^{i}_{k}*(\frac{1}{m+1})^i*(\frac{m}{m+1})^{k-i}\\]
然後考慮答案,我們設\(F_i\)為當前有\(i\)滴血被幹掉的期望回合數,再設\(g_i\)為當前回合打出超過\(i\)滴血的概率,容易得出
\[ F_i=\frac{1}{m+1}(g_{i+1}+\sum_{j=0}^{i}A_{j}(F_{i+1-j}-1))+\frac{m}{m+1}(g_i+\sum_{j=0}^{i-1}A_j(F_{i-j}+1))\F_i=\frac{1}{m+1}(1+\sum_{j=0}^{i}A_{j}F_{i+1-j})+\frac{m}{m+1}(1+\sum_{j=0}^{i-1}A_jF_{i-j})\\]

好像沒有什麽問題,但是還得考慮滿血的情況,這個時候是回不上血的

所以最後得出來
\[ i!=n:\F_i=\frac{1}{m+1}(1+\sum_{j=0}^{i}A_{j}F_{i+1-j})+\frac{m}{m+1}(1+\sum_{j=0}^{i-1}A_jF_{i-j})\i==n:\F_n=1+\sum_{j=0}^{n-1}A_jF_{n-j} \]
然後考慮概率期望的通常做法:高斯消元

由於\(n=1500\),高斯消元顯然會TLE

bzoj5292:[Bjoi2018]治療之雨