HDOJ3853解題報告 概率DP

2022-03-01 11:16:41 字數 1318 閱讀 4045

題目概述:

在乙個r*c的網格中有乙個人有概率向右走,向下走或者留在原地,走一步產生2點花費,球走到終點的期望花費。

大致思路:

概率dp的入門題,學會了求概率要正著推,而求期望需要逆著推。

dp方程為:dp[i][j]=p1*dp[i][j]+p2*f[i][j+1]+p3*f[i+1][j];

複雜度分析:

根據dp方程,顯然複雜度為o(r*c*t).

**:

1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11

using

namespace

std;

1213

#define sacnf scanf

14#define scnaf scanf

15#define maxn 1010

16#define maxm 26

17#define inf 1061109567

18#define eps 0.00001

19const

double pi=acos(-1.0

);20

#define mod 7

21#define maxnum 10000

22void swap(int &a,int &b)

23double abs(double x)

24 typedef long

long

ll;25 typedef unsigned int

uint;26

27double p[3

][maxn][maxn];

28double

f[maxn][maxn];

2930

intmain()

3144

for(int i=r;i>0;i--)

4551

}52 printf("

%.3lf\n

",f[1][1

]);53}54

//clock_t ed=clock();

55//

printf("\n\ntime used : %.5lf ms.\n",(double)(ed-st)/clocks_per_sec);

56return0;

57 }

hdoj 1153 解題報告

題目意思 有乙個城鎮,它的所有街道都是單行的,並且每條街道都是和兩個路口相連。同時已知街道不會形成迴路。你的任務是編寫程式求最小數量的傘兵,這些傘兵可以訪問 visit 所有的路口。對於傘兵的起始降落點不做限制。解題思路 這個題轉化成求dag圖的最小路徑覆蓋數 節點數 最大匹配數。其中求最大匹配是關...

HDOJ 1047解題報告

練習acm後的第一篇解題報告。這題是求大數階乘的,題目要求最大能求10000的階乘。剛一看到這題,感覺思路很簡單,思考了一會之後就開始寫 思路很簡單,由於是大數乘法,普通的int型別肯定不夠用,要用陣列儲存。然後運算過程就是最簡單的乘法運算過程,乘 移位 加 的簡單過程。提交之後一直是tle,悲劇,...

HDOJ 3951 Coin Game 解題報告

2011年8月18日,阿里巴巴程式設計公開賽a題。本題類似我曾今玩過的的乙個nds解密遊戲 雷頓教授與魔神之笛 裡的一道謎題。遊戲裡是給你15個圍成圈的水龍頭,開始它們全都是開啟漏水的。接著你要跟電腦博弈,從電腦開始,雙方可以選擇關閉連續的兩個水龍頭 當然,已關的不能再開啟了 也可以只選擇關掉乙個,...