過河卒(動態規劃)

2021-09-11 02:50:20 字數 1031 閱讀 1359

題目描述

棋盤上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:
思路:簡單dp題,卒只能向下或向右走,即dp[ i ][ j ]=dp[ i-1 ][ j ]+dp[ i ][ j-1 ], 提示說資料可能很大 所以用longlong儲存資料 先找出所有的馬的控制點 包括馬本身 然後遞推 最後的end就是所有路徑的數目

#include

#include

#define maxn 50

int arr[maxn+5]

[maxn+5]

;long

long

int dp[maxn+5]

[maxn+5]

;int c[8]

[2]=

,,,,

,,,}

;//表示馬可能到達的8個位置

intmain()

dp[0]

[0]=

1;for(

int i=

0;i<=a;i++)}

printf

("%lld\n"

,dp[a]

[b])

;return0;

}

過河卒 動態規劃 高精度

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

動態規劃 洛谷 過河卒

第 dp i j 個位置到達的可能性是第 dp i 1 j 個位置方案數 第 dp i j 1 個位置的方案數 題目中馬以 日 字形沿各方向跳出的點才是題目中所謂馬控制的九個點,而不是馬座標周圍的九個點 題目的座標系是以第四象限為平面,卒可向下或向右 dfs求路徑總數要設定邊界 1 到達目的地結束 ...

P1002 過河卒 動態規劃

傳送門 思路 搜尋tle了,只能dp了。dp i j dp i j 1 dp i 1 j 對於 點 i,j 只有 i,j 1 和 i 1,j 這兩種選擇,那麼可以推出狀態轉移方程 先定義dp 0 0 1 dp i j dp i 1 j dp i j 1 但如果這樣的話,以0,0為起點會出現點被覆蓋的...