遞推與遞迴 過河卒

2021-10-08 18:05:30 字數 849 閱讀 5499

棋盤上 a 點有乙個過河卒,需要走到目標 b 點。卒行走的規則:可以向下、或者向右。同時在棋盤上 c 點有乙個對方的馬,該馬所在的點和所有跳躍一步可達的點稱為對方馬的控制點。因此稱之為「馬攔過河卒」。

棋盤用座標表示,a 點 (0, 0)、b 點 (n, m),同樣馬的位置座標是需要給出的。

現在要求你計算出卒從 a 點能夠到達 b 點的路徑的條數,假設馬的位置是固定不動的,並不是卒走一步馬走一步。

一行四個正整數,分別表示 b 點座標和馬的座標。

乙個整數,表示所有的路徑條數。

輸入樣例

6 6 3 3

輸出樣例對於 100% 的資料,1 ≤ n,m ≤ 20,0 ≤ 馬的座標 ≤ 20。

設 dp[i][j] 為 a 點到 (i,j) 的路線數

根據題意就可以得到狀態轉移方程:

dp[1][0] = 1

dp[i][j] = dp[i-1][j] + dp[i][j-1]

而在搜尋馬可以到達的位置時,需要對它的橫縱座標進行減 2 處理,可能會導致下標越界,所以需要對每個點的橫縱座標進行加 2 處理。

#include

using

namespace std;

int xx[8]

=;int yy[8]

=;intmain()

for(

int i=

2;i<=x;i++)}

} cout<

[y]<

return0;

}

過河卒 遞推

description 如圖,a 點有乙個過河卒,需要走到目標 b 點。卒行走規則 可以向下 或者向右。同時在棋盤上的任一點有乙個對方的馬 如上圖的c點 該馬所在的點和所有跳躍一步可達的點稱為對方馬的控制點。例如上圖 c 點上的馬可以控制 9 個點 圖中的p1,p2 p8 和 c 卒不能通過對方馬的...

遞推遞迴 L 馬攔過河卒

題目 description 棋盤上a點有乙個過河卒,需要走到目標b點。卒行走的規則 可以向下 或者向右。同時在棋盤上c點有乙個對方的馬,該馬所在的點和所有跳躍一步可達的點稱為對方馬的控制點。因此稱之為 馬攔過河卒 棋盤用座標表示,a點 0,0 b點 n,m n,m為不超過15的整數 同樣馬的位置座...

C語言 遞推與遞迴 馬攔過河卒

馬攔過河卒 time limit 3000 ms memory limit 65536 kib problem description 棋盤上a點有乙個過河卒,需要走到目標b點。卒行走的規則 可以向下 或者向右。同時在棋盤上c點有乙個對方的馬,該馬所在的點和所有跳躍一步可達的點稱為對方馬的控制點。因...