跳馬問題。bfs計數

2021-07-11 06:05:08 字數 1052 閱讀 1378

描述

在中國象棋中,棋子活動的場所,叫做"棋盤",在長方形的平面上,繪有九條平行的豎線和十條平行橫線相交組成,共九十個交叉點,棋子就擺在這些交叉點上。中間第

五、第六兩橫線之間未畫豎線的空白地帶,稱為"河界",整個棋盤就以"河界"分為相等的兩部分;兩方將帥坐鎮、畫有"公尺"字方格的地方,叫做"九宮"。

中國象棋中,馬是威力很大的棋子。馬走動的方法是一直一斜,即先橫著或直著走一格,然後再斜著走乙個對角線,俗稱"馬走斜"。馬一次可走的選擇點可以達到四周的八個點,故有"八面威風"之說。

我們約定最左下角點的座標為(0,0),則最右上角的座標為(9, 8)。上圖中馬在座標(2, 2)處。它走一步可以到達座標點(1, 0),(0, 1),(0, 3),(1, 4),(3, 4),(4, 3),(4, 1)或(3,0)。如下圖所示。

我們約定當前棋盤上只有乙個馬,給出起點座標和終點座標,求從起點到終點,馬最少要走幾步?

輸入4個整數,前2個數表示起點座標,後2個數表示終點座標。

輸出乙個整數,表示從起點到終點最少需要走的步數。

樣例輸入

2 2 5 2
樣例輸出

#include #include#include#includeusing namespace std;

int dir[8][2]=,,,,,,,};

int vis[12][12];

using namespace std;

int x2,y2;

struct point

buf;

queueq;

void bfs()

}q.pop();

if(buf.x==x2&&buf.y==y2)

}}int main()

}return 0;

}

中國象棋的跳馬問題(BFS)

題目描述 現在棋盤的大小不一定,由p,q給出,並且在棋盤中將出現障礙物 限制馬的行動,與象棋走法相同 輸入 第一行輸入n表示有n組測試資料。每組測試資料第一行輸入2個整數p,q,表示棋盤的大小 1 p,q 100 每組測試資料第二行輸入4個整數,表示馬的起點位置與終點位置。位置的取值範圍同p,q 第...

中國象棋跳馬問題 bfs寫法

問題大意 給定乙個棋盤以及馬的初始位置和需要到達的終點,棋盤中含有障礙,求馬到終點的最短步數,如果不能到達,則輸出 can not reach 解題思路 bfs直接搜尋即可。標準搜尋模板題,這裡順便講一下bfs。bfs是以初始狀態向能走的所有狀態進行層次遍歷。未知的讀者可以按著我這個思路在紙上畫一下...

SHUOJ 1724 單側跳馬問題(BFS)

題目 shuoj 1724 題目 time limit 1 sec memory limit 128 mb submit 51 solved 32 submit status web board 給定m n棋盤,求棋盤上乙隻馬從乙個位置 a,b 到達 c,d 位置的最短路徑長。注意在本問題中馬只能向...