動態規劃
dp[i]
[j][k]表示通過k步走到(i,j)的概率
當我們想計算(r,c)有多少走法時,可以反向思考,有多少點可以走到(r,c)點,所以也就不難理解下面的狀態轉移
dp[i]
[j][k]
=(dp[i-2]
[j-1
][k-1]
+dp[i-2]
[j+1
][k-1]
+dp[i+2]
[j-1
][k-1]
+dp[i+2]
[j+1
][k-1]
+dp[i-1]
[j+2
][k-1]
+dp[i-1]
[j-2
][k-1]
+dp[i+1]
[j+2
][k-1]
+dp[i+1]
[j-2
][k-1]
)/8
表示從位置(r,c)走k步,馬仍然在棋盤上的概率<==>從棋盤上其他位置,走k步到(r,c)的概率。
double
knightprobability
(int n,
int k,
int r,
int c)}}
for(
int k=
1;k<=k;k++)}
}return dp[r+2]
[c+2
][k]
;}
leetcode688 馬在棋盤上的概率
已知乙個 nxn 的西洋棋棋盤,棋盤的行號和列號都是從 0 開始。即最左上角的格仔記為 0,0 最右下角的記為 n 1,n 1 現有乙個 馬 也譯作 騎士 位於 r,c 並打算進行 k 次移動。如下圖所示,西洋棋的 馬 每一步先沿水平或垂直方向移動 2 個格仔,然後向與之相垂直的方向再移動 1 個格...
回溯演算法(馬踏棋盤)
近期學習了回溯演算法於是自己寫了馬踏棋盤的遞迴以及非遞迴方式的 theme 馬踏棋盤 回溯演算法 coder 秒針的聲音 time 2015.1.11 include include include define m 8 typedef struct nodehorse horse horse1 i...
馬踏棋盤演算法
為.c檔案 include include include define rows 8 define cols 8 int cheesboard rows cols const int movex 8 const int movey 8 初始化棋盤,將棋盤所有的位置賦值為0 void initboa...