bzoj4008 亞瑟王 概率dp

2022-03-27 03:32:45 字數 936 閱讀 1440

重述題意:卡牌有發動概率和傷害,每張卡牌只發動一次,按順序遍歷,給出輪數,求傷害期望。

神思路啊……我的腦子基本想不出來……

如果說正面剛,剛一天也剛不掉,我們換個思路,用f[i][j]表示第i張卡被遍歷j次的概率。

這個概率可以分為兩部分:

1、第i-1張卡被遍歷j次且一直沒發動。這一段公式為f[i-1][j]*(1-p[i-1])j。其中,p[i]表示第i張卡發動的概率。

2、第i-1張卡被遍歷j+1次但已發動。這一段公式為f[i-1][j+1]*(1-(1-p[i-1])j)(至少發動一次的概率)。

那麼,f[i][j]就是這兩部分的和。

問題來了,一直在求概率,要求的期望呢?其實f[i][j]對期望的貢獻,是遍歷j次且發動了的概率與傷害的乘積,也就是f[i][j]*(1-(1-p[i])j)*d[i],其中d[i]為第i張卡的傷害。

1 #include2 #include3 #include4 #include5 #include6

using

namespace

std;

7 typedef long

double

llf;

8const

int maxn=225,maxr=135;9

llf f[maxn][maxr],ans;

10double

p[maxn];

11int

n,r,d[maxn];

12int

haha()

1329 printf("

%0.10lf\n

",(double

) ans);

30 ans=0;31

}32}33

int sb=haha();

34int main()

bzoj 4004

BZOJ 4008 亞瑟王 概率DP 奧妙重重

題意 中文題面,就不解釋了 分析顯然這道題直接求期望太麻煩,想想轉化問題 這轉化太神了 定義f i,j f i,j 表示第i i張卡總共被經過j j次的概率,有轉移方程式f i,j f i 1,j 1 pi 1 j f i 1,j 1 1 1 pi 1 j 1 f i,j f i 1,j 1 pi ...

概率 亞瑟王

題目描述 小 k 不慎被 ll 邪教 了,程度深到他甚至想要從亞瑟王邪教中脫坑。他決定,在脫坑之前,最後再來打一盤亞瑟王。既然是最後一戰,就一定要打得漂亮。眾所周知,亞瑟王是乙個看臉的遊戲,技能的發動都是看概率的。作為乙個非洲人,同時作為乙個前 oier,小 k 自然是希望最大化造成傷害的期望值。但...

HNOI2015 亞瑟王(概率dp)

題面太長了就不複製了,傳送門 一道做了還是很懵逼的題目,感覺以後碰到類似的還是不會,果然hnoi題目很皮。題解傳送 補充一下吧。感覺他的部落格已經寫得很好了.orz 需要的可以兩邊一起看 1.期望的線性性質 e x y e x e y x,y 是兩個不同的事件 e kx ke x k為常數 2.單獨...