有一張p*q的棋盤,並且棋盤中有障礙物(用來限制馬的行動,即中國象棋中的蹩馬腿)。有乙個棋子馬(走「日」字形路線),要從起始點走到終點。
輸入部分:
第一行輸入乙個整數n,表示有n組測試例項,每組測試資料第一行輸入兩個整數p和q,表示棋盤的大小(1<=p,q<=100),每組測試資料第二行輸入4個整數x1,y1,x2,y2,表示馬的起點和終點的座標。第三行輸入乙個整數m,表示圖中有多少障礙物,接著m行每行乙個座標,分別表示m個障礙物的位置座標。
輸出部分:
輸出馬從起始位置走到終點所需的最小步數。若馬不能走到終點,輸出「 can not reach!」
樣例輸入:
29 10
1 1 2 3
09 10
1 1 2 3
81 2
2 23 3
3 41 4
3 22 4
1 3樣例輸出
1can not reach!
#include using namespace std;
#define max 100
string ans[max];
int s[max][max];
int vis[max][max];
int dir[8][2]=;
int barr[4][2]=;
int x,y,x2,y2,i,q,p,n;
int t=0;
struct statea;
stringstream ss;
queueq;
int bfs(state st)
} q.pop();
} /*cout<<"can not reach!"<>n;
while(n--)
a.x=x;a.y=y;a.step=0;
bfs(a);
} for(i=0;icout
}
中國象棋中的跳馬問題
現在棋盤的大小不一定,由p,q給出,並且在棋盤中將出現障礙物 限制馬的行動,與象棋走法相同 第一行輸入n表示有n組測試資料。每組測試資料第一行輸入2個整數p,q,表示棋盤的大小 1 p,q 100 每組測試資料第二行輸入4個整數,表示馬的起點位置與終點位置。位置的取值範圍同p,q 第三行輸入m表示圖...
中國象棋中的跳馬問題 bfs
現在棋盤的大小不一定,由p,q給出,並且在棋盤中將出現障礙物 限制馬的行動,與象棋走法相同 第一行輸入n表示有n組測試資料。每組測試資料第一行輸入2個整數p,q,表示棋盤的大小 1 p,q 100 每組測試資料第二行輸入4個整數,表示馬的起點位置與終點位置。位置的取值範圍同p,q 第三行輸入m表示圖...
中國象棋中的跳馬問題(BFS)
題目描述 現在棋盤的大小不一定,由p,q給出,並且在棋盤中將出現障礙物 限制馬的行動,與象棋走法相同 輸入第一行輸入n表示有n組測試資料。每組測試資料第一行輸入2個整數p,q,表示棋盤的大小 1 p,q 100 每組測試資料第二行輸入4個整數,表示馬的起點位置與終點位置。位置的取值範圍同p,q 第三...