洛谷P1002過河卒

2021-10-02 06:18:12 字數 900 閱讀 9724

洛谷p1002 過河卒

眨眼一看是個搜尋的題,用搜尋做了半天就是出不來,也不知道是什麼問題,看了一下題解才知道原來是個dp的題。

dp的話就很好理解了,除了被馬盯著的那九個點外,每個點的值其實就是表示有多少條路徑可以到達的這個點。

在這裡拿一下題解裡面的圖

至於為什麼搜尋一直做不對,我也不是很清楚 欸

其實這道題,知道是用dp的話就不難,在我看來難的是看起來那麼偏向搜尋的題怎麼想到dp,這個是我一直欠缺的能力,我也在不斷努力。

動態規劃是乙個很好用很高效的演算法,一定要在這上面花點功夫。

上**

#include

using

namespace std;

//馬可以走到的位置

const

int mx=

;const

int my=

;int hx, hy, bx, by;

unsigned

long

long way[50]

[50];

//記錄每一點的路徑條數

bool horse[50]

[50];

//判斷該點是否被馬盯著

intmain()

for(

int i =

1; i <= bx; i++)}

cout << way[bx]

[by]

<< endl;

return0;

}

洛谷 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的整數 同樣馬的位置座標是需要給出的。現在要求你計算...