如下圖所示有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...