又是一道裸bfs。。。。主要是為了過洛谷上的試煉場。。。
有乙個n*m的棋盤(1 < n,m<=200),在某個點上有乙個馬,要求你計算出馬到達棋盤上任意乙個點最少要走幾步
輸入描述:
一行四個資料,棋盤的大小和馬的座標
輸出描述:
乙個n*m的矩陣,代表馬到達某個點最少要走幾步(左對齊,寬5格,不能到達則輸出-1)
input
3 3 1 1
output0 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 馬是怎麼走的?哈哈哈哈哈。馬 走動的...