題目
請編寫乙個函式(允許增加子函式),計算n x m的棋盤格仔(n為橫向的格仔數,m為豎向的格仔數)沿著各自邊緣線從右下角走到左上角,總共有多少種走法,要求不能走回頭路,即:只能往左和往上走,不能往右和往下走。
思路將原問題化解為子問題,若每次只能走一步,即從第(m * n)個格走一步,只有兩種走法,(n - 1, m)和(n, m - 1)。由此,可將原始問題拆解成子問題。
邊界條件: 若要走到 (0, 0)點,此時, 棋子在棋盤的最左邊或者最上邊的線上,只有一種走法。
即:
解法if
(n ==
0|| m ==0)
public
static
intsolve
(int n,
int m)
return
solve
(n-1
, m)
+solve
( n, m-1)
;}
public
class
solution02
result[n]
[m]=
solve
(n-1
, m)
+solve
(n, m-1)
;return result[n]
[m];
}public
static
intgetstep
(int n,
int m)
result =
newint
[n+1
][m+1]
;for
(int i =
0; i <= n; i++
)else}}
return
solve
(n, m);}
public
static
void
main
(string[
] args)
}
public
class
solution03
int[
] result =
newint
[n +1]
[m +1]
;for
(int i =
0; i <= n; i++
)else
} system.out.
("\n");
}return result[n]
[m];
}public
static
void
main
(string[
] args)
}
棋盤型動態規劃 方格取數
題意 有n n的方格圖 n 10,我們將其中的某些方格中填入正整數,而其他的方格中則放入數字0。如下圖所示 見樣例 某人從圖的左上角的a 點出發,可以向下行走,也可以向右走,直到到達右下角的b點。在走過的路上,他可以取走方格中的數 取走後的方格中將變為數字0 此人從a點到b 點共走兩次,試找出2條這...
Luogu1436 棋盤分割(動態規劃)
無 將乙個 的棋盤進行如下分割 將原棋盤割下一塊矩形棋盤並使剩下部分也是矩形,再將剩下的兩部分中的任意一塊繼續如此分割,這樣割了 n 1 次後,連同最後剩下的矩形棋盤共有n塊矩形棋盤。每次切割都只能沿著棋盤格仔的邊進行 原棋盤上每一格有乙個分值,一塊矩形棋盤的總分為其所含各格分值之和。現在需要把棋盤...
POJ 1191 棋盤分割 動態規劃
詳見 include include include include include include using namespace std int n,sum 10 10 sum i j 表示以i,j為右下角的矩陣的和 int dp 15 10 10 10 10 int tot 10 10 10 ...