洛谷 1002 過河卒

2022-03-04 10:07:26 字數 799 閱讀 2618

雖然這道題目的標籤上有高精,但是用long long int就能ac

看到普及-的難度,本蒟蒻二話不說寫了dfs,結果...只拿了40分,只好改變思路寫了遞推(個人認為dp!=遞推)。

(dfs**未ac,無注釋)

#includeusing

namespace

std;

intmx,my,ex,ey;

bool v[25][25

];long

long ans=0

;void dfs(int x,int

y)int

main()

下為ac**(遞推)

由於卒只能向下向右移動,不難得出遞推式 f [ i ] [ j ] = f [ i - 1 ] [ j ] + f [ i ] [ j - 1 ] (f [ i ] [ j ]為 起點到點(i,j)的路徑數),馬的控制區設為0,直接跳過即可。

這裡為了防止陣列下標為負數,將整個棋盤向右下移動(起點由(0,0)變為(1,1))。

#include//

萬能庫using

namespace

std;

long

long f[25][25]; //

f[i][j]為 起點到點(i,j)的路徑數

intn,m,hx,hy;

bool v[25][25]; //

v陣列記錄點(i,j)是否為馬的控制區

intmain()

洛谷 1002 過河卒

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

洛谷1002 過河卒

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

洛谷 P1002 過河卒

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