DP 騎士遊歷IV

2021-08-28 06:39:50 字數 834 閱讀 8265

如下圖所示有m*n(n,m<=100)乙個棋盤,在棋盤左下角的a(1,1)點,有乙個中國象棋〈馬〉,並約定馬走的規則:

①走日字;②只能向右走。

如圖所示,圖中有一障礙區域,不能通過,問從左下角到右上角有多種不同的方法。

第一行:棋盤大小

第二行:前兩個數為障礙區域的左下角從標,後兩個數為右上角座標

總共有多少方案。

100 100

10 10 20 20

動態規劃。因為結果大,所以要壓位,否則陣列管你開多大,反正就是炸。

#include

#include

using

namespace std;

const

int dx[5]

=;const

int dy[5]

=;//方向

int n,m;

//大小

int f[

105]

[105][

11];bool a[

105]

[105]=

;bool

check

(int x,

int y)

//判斷是否超界

void

add(

int x1,

int y1,

int x2,

int y2)

}int

main()

return0;

}

ACM 1219 騎士遊歷 dp

22人推薦 收藏發題解 設有乙個n m的棋盤 2 n 50,2 m 50 如下圖,在棋盤上有乙個中國象棋馬。規定 1 馬只能走日字 2 馬只能向右跳 問給定起點x1,y1和終點x2,y2,求出馬從x1,y1出發到x2,y2的合法路徑條數。第一行2個整數n和m 第二行4個整數x1,y1,x2,y2 輸...

記憶化搜尋,dp 騎士遊歷

廣搜真的會超時。給定起點和終點,規定只能向右走,問走到終點的方案數 注意 不一定要是最優路徑!因為不需要是最優路徑,所以廣搜的優勢沒了,變成了慢得要死的深搜。所以要用記搜或者dp d p時間複雜度 就是這麼慢 include include using namespace std int ans,n...

1219 騎士遊歷 解答

1219 騎士遊歷 題目描述 description 設有乙個n m的棋盤 2 n 50,2 m 50 如下圖,在棋盤上有乙個中國象棋馬。規定 1 馬只能走日字 2 馬只能向右跳 問給定起點x1,y1和終點x2,y2,求出馬從x1,y1出發到x2,y2的合法路徑條數。輸入描述 input descr...