BFS 馬的遍歷

2021-07-11 12:24:30 字數 771 閱讀 2782

又是一道裸bfs。。。。主要是為了過洛谷上的試煉場。。。

有乙個n*m的棋盤(1 < n,m<=200),在某個點上有乙個馬,要求你計算出馬到達棋盤上任意乙個點最少要走幾步

輸入描述:

一行四個資料,棋盤的大小和馬的座標

輸出描述:

乙個n*m的矩陣,代表馬到達某個點最少要走幾步(左對齊,寬5格,不能到達則輸出-1)

input

3 3 1 1
output
0    3    2    

3 -1 1

2 1 4

請認真讀題,這是一道簡單的bfs,沒有什麼特殊的特殊技巧。

注意輸出格式。

**如下:

#include

#include

#include

#include

using

namespace

std;

int n,m,x1,y1,map[210][210];

const

int tx[8]=,

ty[8]=;

void search();

struct pos;

pos newpos(int x,int y)

int main()

cout

<<"\n";

}return0;}

void search()}}

}}

BFS演算法 馬的遍歷

有乙個n m的棋盤 1這題主要難度在於,馬如何移動。我們只要將馬移動的範圍畫出來,思路就非常清晰了 又上圖可見,馬從起點 0,0 搜尋的範圍有8個,將其轉換 如下 int dx int dy 我們依次搜尋到結束,就能獲取到最小路徑了 include using namespace std int v...

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 馬是怎麼走的?哈哈哈哈哈。馬 走動的...