洛谷p1443馬的遍歷(bfs題目)

2021-09-02 19:04:52 字數 1093 閱讀 1352

本題有乙個坑點 就是馬是走「日」的,所以找解(bfs)的時候需要注意八個可能 存到dx dy中for迴圈遍歷就行啦

#include

using

namespace std;

struct node

;int dx=

;int dy=

;int vis[

1000][

1000

],bk[

1000][

1000];

int n,m,sx,sy;

void

bfs(

int x,

int y));

vis[x]

[y]=1;

bk[x]

[y]=0;

while

(!q.

empty()

));}

}}}int

main()

}

由於格式問題printf更加方便一些,所以本題沒有開加速,因為關閉stdio聯絡以後就無法用printf了

本題思路就是從輸入的數開始bfs,記錄座標走的次數,因為有走不到就輸出-1的設定,所以需要乙個

memset(bk,-1,sizeof(bk));來將存答案的陣列初始化成-1,這樣走不到的地方就輸出-1就完事了。

node入隊的地方還有一種寫法,**如下:

#include

using

namespace std;

struct node

;int dx=

;int dy=

;int vis[

1000][

1000

],bk[

1000][

1000];

int n,m,sx,sy;

void

bfs(

int x,

int y)}}

}int

main()

}就是每次都定義一次node 名稱下的結構體,然後將數存到結構體中,進隊,上邊的寫法和這個乙個意思,不過這種個更容易理解,

看個人習慣啦~

洛谷 P1443 馬的遍歷(bfs)

題意 乙個n m的棋盤,給你馬的起始座標,輸出到達棋盤上每一點的最少步數,無法到達則輸出 1。思路 bfs即可。具體解釋見 include include include include include using namespace std int n,m,x,y 棋盤和馬的初始座標 int qu...

洛谷 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...