BFS演算法 馬的遍歷

2021-10-21 17:59:21 字數 609 閱讀 5143

有乙個n*m的棋盤(1這題主要難度在於,馬如何移動。

我們只要將馬移動的範圍畫出來,思路就非常清晰了

又上圖可見,馬從起點(0,0)搜尋的範圍有8個,將其轉換**如下:

int dx = ;

int dy = ;

我們依次搜尋到結束,就能獲取到最小路徑了

#include using namespace std;

int v[400][400];

struct node ;

queueq;

int dx = ;

int dy = ;

int main() );

v[sx][sy] = 0;

while (!q.empty()) );

v[tx][ty] = current.s + 1;}}

q.pop();

}for (int i = 1; i <= n; i++)

return 0;

}

BFS 馬的遍歷

又是一道裸bfs。主要是為了過洛谷上的試煉場。有乙個n m的棋盤 1 n,m 200 在某個點上有乙個馬,要求你計算出馬到達棋盤上任意乙個點最少要走幾步 輸入描述 一行四個資料,棋盤的大小和馬的座標 輸出描述 乙個n m的矩陣,代表馬到達某個點最少要走幾步 左對齊,寬5格,不能到達則輸出 1 inp...

bfs 廣搜 馬的遍歷

includeusing namespace std int dirx 8 int diry 8 const int n 405 int dp n n int n,m,x,y int new x,new y bool vst n n 訪問標記 queuevis bfs佇列 bool checksta...

馬的遍歷(BFS 洛谷

題目描述 有乙個n m的棋盤 1輸入格式 一行四個資料,棋盤的大小和馬的座標 輸出格式 乙個n m的矩陣,代表馬到達某個點最少要走幾步 左對齊,寬5格,不能到達則輸出 1 樣例輸入 3 3 1 1 輸出 0 3 2 3 1 1 2 1 4 看到題目第一想法是 1 馬是怎麼走的?哈哈哈哈哈。馬 走動的...