原題鏈結
對於任意乙個可以行走的格仔,路徑條數 = 上面的格仔路徑條數+左邊的條數
(因為rush b不能走回頭路,只能往下、右,所以任意的格仔的前乙個格仔,只能是上面或左邊,加起來就是可以用於rush的路徑數量)
特殊處理一下,馬狙盯住的位置不能rush
還有的就是要注意 int 裝不下結果,要用 long long
rush b**
時 間復
雜度o(
n2
)時間複雜度o(n^2)
時間複雜度o
(n2)
//#define local 1
#include
long
long map[30]
[30];
int b_x, b_y;
//b點座標
int ho_x, ho_y;
//馬的座標 horse
inline
long
long
relu
(long
long n)
void
rush_b()
if(j -
1>=0)
}}void
unreachable_marking()
;int sign=
;for
(int i =
0; i <
2; i++)}
}int
main()
洛谷 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的整數 同樣馬的位置座標是需要給出的。現在要求你計算...