zoj3640 概率(期望)dp

2022-05-23 18:42:10 字數 1183 閱讀 9331

題目大意:有乙個吸血鬼,初始攻擊力為f,每天隨機走到n個洞裡面,每個洞有乙個c[i],如果他的攻擊力f>c[i]

則可以花費t[i] 的時間逃走,否則則花費一天時間使自己的攻擊力增加c[i],求逃走天數的期望

分析:這道題求期望,,考慮採用概率dp求解

想到的最簡單方法就是dp[i][j]表示 第i天,攻擊力為j的概率,然後對每乙個c進行轉移,最後統計答案

但是發現i,j的範圍都是10000,n是100 這麼做顯然是行不通的

於是又可恥的搜了一下題解,發現有乙個博主寫的期望dp這個概念很不錯

令 dp[a]表示 攻擊力為 a 後 還需要多少天逃出的期望,那麼dp[f]即為答案

注意關鍵是這個 「還」

狀態轉移:

如果 a>c[i]  那麼顯然還需要 t[i]時間逃出

如果 a<=c[i] 那麼先要花費一天把攻擊力增加a+c[i],然後還要花費的時間就是 dp[a+c[i]]

這樣轉移方程就很好寫了

由於需要從後往前轉移,採用記憶化搜尋寫

開始陣列開10010 老是segment fault 後來開到10w過了。。

**:

#include #include 

#include

#include

#include

#include

#include

#pragma comment(linker, "/stack:102400000,102400000")

using

namespace

std;

intn,f;

double

p;double dp[100010

];int c[1110

];bool vi[100010

];double dfs(int

a)

return

dp[a];

}int

main()

memset(dp,

0,sizeof

(dp));

memset(vi,

0,sizeof

(vi));

p=(1.0+sqrt(5.0))/2.0

; printf(

"%.3f\n

",dfs(f));

}return0;

}

期望概率 dp

p4316 綠豆蛙的歸宿 p1850 noip2016 提高組 換教室 p3802 小魔女帕琪 p5104 紅包發紅包 p4550 收集郵票 f i frac f i 1 frac f 1 g i frac g i f i 1 frac g f 1 p1291 shoi2002 百事世界盃之旅 p3...

(概率dp 期望)Collecting Bugs

題目是真的長,找了半天才知道n和s是啥,題意就是有s個程式,n種bug 每一天必定發現乙個bug,但是這個bug有1 s概率屬於其中乙個程式,1 n的概率屬於一種bug,求s個程式要發現n種bug的概率。kuangbin大佬部落格 期望從結果倒著推到初始狀態 dp i j i n s dp i j ...

概率dp 期望)LOOPS

題意為位於乙個迷宮,剛開始在左上角 1,1 每個格仔都有p1的概率留在原地,p2的概率向右移動乙個,p3的概率向下移動一格,但都要花費2點魔力值。求到右下角 r,c 的花費魔力值期望 dp i j p1 dp i j p2 dp i j 1 p3 dp i 1 j 2 注意有的格仔p1為1的時候,這...