P1443 馬的遍歷

2021-10-10 19:03:36 字數 998 閱讀 7448

題目鏈結

有乙個n*m的棋盤(1一行四個資料,棋盤的大小和馬的座標

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

3 3 1 1

0 3 2

3 -1 1

2 1 4

bfs的入門題,可以用佇列queue> q來記錄點的遍歷也可以設定struct node來記錄點的遍歷;

make_pair(v1, v2);以v1和v2的值建立乙個新的pair物件,其元素型別分別是v1和v2的型別。

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace std;

const

int maxn=

405;

int n,m;

bool vis[maxn]

[maxn]

;//來判斷該點是否走過

int a[maxn]

[maxn]

;//記錄到達改點的步數

int sx,sy;

//起點x,y

queueint,

int>

> q;

//遍歷點的記錄

int dir[8]

[2]=

,,,,

,,,}

;//馬的8種移動可能

boolpd(

int x,

int y)

//判斷要走的點是否越界和是否走過

void

bfs(

int x,

int y)}}

}int

main()

}

P1443 馬的遍歷

題目描述 有乙個n m的棋盤 1輸入輸出格式 輸入格式 一行四個資料,棋盤的大小和馬的座標 輸出格式 乙個n m的矩陣,代表馬到達某個點最少要走幾步 左對齊,寬5格,不能到達則輸出 1 輸入樣例 1 3 3 1 1 輸出樣例 1 0 3 2 3 1 1 2 1 4bfs題,遍歷一下所有的位置 inc...

p1443馬的遍歷

就是一道很簡單的bfs,我為了練習一下queue型別的函式,第一次沒有用陣列模擬,直接上 這道題有乙個特殊的輸出,就是輸出寬五行,學習一下。include include include include include using namespace std int n,m const int ma...

P1443 馬的遍歷

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