洛谷 P1443 馬的遍歷(bfs)

2021-08-18 16:37:01 字數 597 閱讀 3319

題意:乙個n*m的棋盤,給你馬的起始座標,輸出到達棋盤上每一點的最少步數,無法到達則輸出-1

**思路:**bfs即可。

具體解釋見**:

#include 

#include

#include

#include

#include

using

namespace

std;

int n,m,x,y;//棋盤和馬的初始座標

int que[200001][4];//1,2是座標,3是步數

int s[405][405];//到x,y的最少步數

int dx[8]=;//方向陣列

int dy[8]=;

int main()}}

head++;//隊首++

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

printf("\n");

}return

0;}

總結:bfs還是要勤加練習,特別是佇列的應用。

洛谷 P1443 馬的遍歷 bfs

問題描述 有乙個nm的棋盤 1m的矩陣,代表馬到達某個點最少要走幾步 左對齊,寬5格,不能到達則輸出 1 輸入 3 3 1 1 輸出 0 3 2 3 1 1 2 1 4 本蒟蒻的第一篇題解,也是研究了半天才搞明白。話不多說直接給思路。本題給出棋盤大小和初始位置求到每個點最少要走幾步。設定乙個佇列陣列...

洛谷 P1443 馬的遍歷(BFS)

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

洛谷 P1443 馬的遍歷 bfs

略有收穫的bfs,使用了try enqueue函式使得加入佇列非常方便。效能理論上是一樣的因為是inline?還有就是左對齊是使用 4d,相對於右對齊的 4d,還有右對齊前導零的 04d,自己試一下唄。includeusing namespace std define ll long long in...