棋盤 動態規劃

2021-08-18 06:23:43 字數 1437 閱讀 9019

題目

請編寫乙個函式(允許增加子函式),計算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.

print

("\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 ...