馬走日的解法(dfs)

2021-10-19 11:37:42 字數 672 閱讀 3663

馬在中國象棋以日字形規則移動。

請編寫一段程式,給定n*m大小的棋盤,以及馬的初始位置(x,y),要求不能重複經過棋盤上的同乙個點,計算馬可以有多少途徑遍歷棋盤上的所有點。

input

第一行為整數t(t < 10),表示測試資料組數。 

每一組測試資料報含一行,為四個整數,分別為棋盤的大小以及初始位置座標n,m,x,y。(0<=x<=n-1,0<=y<=m-1, m < 10, n < 10)

output

每組測試資料報含一行,為乙個整數,表示馬能遍歷棋盤的途徑總數,0為無法遍歷一次。sample input

1

5 4 0 0

sample output

32

馬走日,4個方向換成8個方向深搜

**:

#includeusing namespace std;

intn,m,x,y;

intcnt;

int vis[10][10];

int dx=;

int dy=;

void dfs(int x,int y,int

t)

for(int i=0;i<8;i++)

}int

main()

return 0;

}

資料結構 馬走日的解法

假設西洋棋棋盤有5 5共25個格仔。設計乙個程式,使棋子從初始位置 如圖 開始跳馬,需要將棋盤的格仔全部都走一遍,每個格仔只允許走一次。p.s西洋棋的棋子是在格仔中間的。西洋棋中的 馬走日 如第一步為 1,1 第二步為 2,8 或 2,12 第三步可以是 3,5 或 3,21 等,以此類推。incl...

演算法 馬走日

題目描述 在西洋棋中,馬的走法與中國象棋類似,即俗話說的 馬走日 下圖所示即西洋棋中馬每一步能到達的格仔 箭頭所指為每步到達位置 現有一200 200大小的西洋棋棋盤,棋盤中僅有乙個馬,給定馬的當前位置和目標位置,求出馬最少需要多少跳才能從當前位置到達目標位置。輸入格式 已有檔案txt格式 檔案裡每...

NOI 8465 馬走日 深搜DFS

描述 馬在中國象棋以日字形規則移動。請編寫一段程式,給定n m大小的棋盤,以及馬的初始位置 x,y 要求不能重複經過棋盤上的同乙個點,計算馬可以有多少途徑遍歷棋盤上的所有點。輸入第一行為整數t t 10 表示測試資料組數。每一組測試資料報含一行,為四個整數,分別為棋盤的大小以及初始位置座標n,m,x...