洛谷 P1443 馬的遍歷(廣度優先搜尋 佇列)

2021-09-26 22:34:23 字數 600 閱讀 9772

題目:

標籤:搜尋、廣度優先搜尋,bfs、佇列

一般的,求解的個數用深搜,求最優解用廣搜。這題很明顯,求馬到達某個點最少要走幾步,所以用廣度優先搜尋。

思路很簡單,馬能走八個方向,在搜尋時逐一走一遍,滿足條件就進隊,再記錄步數。

#include

#include

using

namespace std;

int n, m, x, y, step;

// step是步數

// 馬能走的八個方向

int dir[8]

[2]=

,,,,

,,,}

;int loc[

405]

[405];

// 記錄到達該點所需步數

struct nodesnode, top;

queue q;

void

bfs(

)bfs()

;}intmain()

printf

("\n");

}return0;

}

洛谷 P1443 馬的遍歷

題目概述 有乙個n m的棋盤 1 解題思路 使用廣搜,注意地圖邊界和馬跳的方向即可。可以採用for代替8個if來減少要碼的字。注意棧的讀寫。時間複雜度 o n m 空間複雜度 o n m 源程式 const d array 1.2,1.8 of longint 2,2,1,1,1,1,2,2 1,1...

洛谷 P1443馬的遍歷

有乙個n m的棋盤 1輸入格式 一行四個資料,棋盤的大小和馬的座標 輸出格式 乙個n m的矩陣,代表馬到達某個點最少要走幾步 左對齊,寬5格,不能到達則輸出 1 輸入樣例 1 複製3 3 1 1 輸出樣例 1 複製0 3 2 3 1 1 2 1 4 include include include i...

洛谷P1443 馬的遍歷

有乙個n m的棋盤 1輸入格式 一行四個資料,棋盤的大小和馬的座標 輸出格式 乙個n m的矩陣,代表馬到達某個點最少要走幾步 左對齊,寬5格,不能到達則輸出 1 輸入樣例 1 複製 3 3 1 1輸出樣例 1 複製 0 3 2 3 1 1 2 1 4bfs模板題 includeusing names...