題目大意:
給乙個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 ...