題目描述
棋盤上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為起點會出現點被覆蓋的...