簡單概率dp 期望 hdu 3853 LOOPS

2021-06-18 07:43:13 字數 1155 閱讀 7191

題目大意:

給乙個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[i][j][0]+(2+dp[i][j+1])*sa[i][j][1]+(2+dp[i+1][j])*sa[i][j][2],移向即可得轉移方程。

注意有除法,去掉分母為0的情況。

**:#include#include#include#include#include#include#include#include#include#include#include#include#include#include#define eps 1e-6

#define inf 0x3fffffff

#define pi acos(-1.0)

#define ll __int64

#define lson l,m,(rt<<1)

#define rson m+1,r,(rt<<1)|1

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

using namespace std;

#define maxn 1100

double dp[maxn][maxn];

double sa[maxn][maxn][3];

int row,col;

int main()

{ while(~scanf("%d%d",&row,&col))

{for(int i=1;i<=row;i++)

for(int j=1;j<=col;j++)

for(int k=0;k<3;k++)

scanf("%lf",&sa[i][j][k]);//三種概率

dp[row][col]=0;//最後一格 往前遞推

for(int i=row;i>=1;i--)

for(int j=col;j>=1;j--)

{if(i==row&&j==col)

continue;

if(fabs(1-sa[i][j][0])

hdu 3853 全期望公式 概率dp

e n m 0 三種運動的概率分別是a,b,c e i j a e i j b e i j 1 c e i 1 j e i j b e i j 1 c e i 1 j 1 a 如果1 a近似到0,那麼說明只能到它本身,所以它不能到達終點,所以它的期望是無窮,也就是不能到達,要進行特判,賦值為 inc...

HDU 3853 期望概率DP

期望概率dp簡單題 從 1,1 點走到 r,c 點,每走一步的代價為2 給出每乙個點走相鄰位置的概率,共3中方向,不動 x,y x y p x y 0 右移 x y x y 1 p x y 1 左移 x y x 1 y p x y 2 問最後走到 r,c 的期望 dp i j 為從 i j 點走到 ...

hdu 3853 概率dp入門

題意 在一塊r c的棋盤上,從位置 1,1 的地方走到位置為 r,c 的地方,每走一步的代價為2,在位置 i,j 可能會走到位置 i 1,j i,j 1 以及 i,j 題目中給出每個點走向下乙個方向的概率,求花的總代價。分析 一道很基礎的概率dp,dp i j 表示的是從位置 i,j 走到 r,c ...