洛谷 P1002過河卒

2021-09-26 02:25:31 字數 887 閱讀 2284

洛谷 p1002過河卒

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

棋盤用座標表示,aa點(0, 0)(0,0)、bb點(n, m)(n,m)(nn, mm為不超過2020的整數),同樣馬的位置座標是需要給出的。

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

一行四個資料,分別表示bb點座標和馬的座標。

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

輸入 #1

6 6 3 3
輸出 #1

6
結果可能很大!

思路: 題中涉及到了三個位置,卒不能經過馬走的範圍內(下過象棋的同學就知道,馬能走自身及周圍8個點,題中有強調了 馬所在的位置也是馬的控制點,所以極端狀況下卒是有9個點不能走的)。如果直接搜的話會超時,所以要用動態規劃加遞推來算。因為卒只能前進或右走。所以可以推出狀態轉移方程dp[i][j]=dp[i-1][j]+dp[i][j-1]。**如下:

#include #define ll long long

using namespace std;

int const maxn=10001;

ll dp[21][21]=;

bool cb[21][21]=;

int dx[9]=;

int dy[9]=;

int main()

for(int i=0;i<=n;i++)

} cout

}

洛谷 P1002 過河卒

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

洛谷P1002過河卒

dp水題,我都會做 我們考慮地圖上i,j的位置可以怎麼過來,因為卒只能向下或向右,所以當前位置只能由它的上方或左方轉移過來,所以f i j f i 1 j f i j 1 然後考慮邊界情況,沿著上沿和左沿只能向乙個方向走,所以f i 0 0,f 0 i 0,這是不考慮有馬的情況,當馬加入圖中後,我們...

洛谷 P1002 過河卒

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