描述
在中國象棋中,棋子活動的場所,叫做"棋盤",在長方形的平面上,繪有九條平行的豎線和十條平行橫線相交組成,共九十個交叉點,棋子就擺在這些交叉點上。中間第
五、第六兩橫線之間未畫豎線的空白地帶,稱為"河界",整個棋盤就以"河界"分為相等的兩部分;兩方將帥坐鎮、畫有"公尺"字方格的地方,叫做"九宮"。
中國象棋中,馬是威力很大的棋子。馬走動的方法是一直一斜,即先橫著或直著走一格,然後再斜著走乙個對角線,俗稱"馬走斜"。馬一次可走的選擇點可以達到四周的八個點,故有"八面威風"之說。
我們約定最左下角點的座標為(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 位置的最短路徑長。注意在本問題中馬只能向...