題意為位於乙個迷宮,剛開始在左上角(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的時候,這個格仔是不能到的,他一直在原地,我們不處理它並且把他的期望置為0,不對其他格仔產生影響
#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;
const int maxn = 1000 + 5;
const double eps = 1e-5;
double dp[maxn][maxn];
struct p p[maxn][maxn];
int main()
dp[i][j] = p[i][j].p2 * dp[i][j + 1] + p[i][j].p3 * dp[i + 1][j] + 2.0;
dp[i][j] /= (1 - p[i][j].p1);}}
printf("%.3f\n", dp[1][1]);
}}
簡單概率dp 期望 hdu 3853 LOOPS
題目大意 給乙個r c的矩陣,每個格仔 x,y 用2魔法值就可以走一步,可以到 x,y x 1,y x,y 1 告訴每個格仔的能到達的三個位置的概率,求從左上角到達右下角所需魔法值的期望。解題思路 簡單期望dp.dp i j 表示從位置 i,j 到達終點的期望,則dp i j 2 dp i j sa...
hdu 3853 LOOPS(概率DP求期望)
算是入門的第二題了。魔法師在迷宮中分別有p loop的概率停留,p right的概率走到 i,j 1 p down的概率走到 i 1,j 每走一次消耗2點魔法值。dp i j 表示從當前走到 r,c 所需要的魔法值,則有 dp i j dp i j p loop i j dp i j 1 p rig...
HDU3853 LOOPS 概率DP數學期望
題目大意 給出乙個n m的矩陣,要求從左上角走到右下角,每次移動消耗兩點能量,並且每次的移動方向是有概率的 回到自身,往右或者往下 輸入的矩陣中的每個位置有三個數,分別表示回到自身 向右移動 向下移動的概率,三者概率和為1,要求輸出從左上角走到右下角需要消耗的能量值的期望。測試資料可能有點問題,會出...