bfs(結合佇列,結構體)

2021-09-25 05:45:19 字數 1368 閱讀 5779

在象棋王國,尼古拉斯.火山是一匹英俊的馬,他非常幸運迎娶了白馬王國的公主,他們將度蜜月,你現在是他們的女僕,火山會問你去一些地方最少需要多少步,這麼簡單的事當然難不倒你。由於火山是一匹馬,他的移動方式將會遵守西洋棋馬的走法。

輸入:輸入包含乙個或多個輸入樣例。每個測試樣例將會有兩個座標,表示現在的位置和將要到達的地方,每個座標包含乙個字母(a-h)表示列和乙個數字(1-8) 行,這意味這這個象棋王國是乙個8* 8的矩形。

input

輸入包含乙個或多個輸入樣例。每個測試樣例將會有兩個座標,表示現在的位置和將要到達的地方,每個座標包含乙個字母(a-h)表示列和乙個數字(1-8) 行,這意味這這個象棋王國是乙個8* 8的矩形。

output

每一組樣例將會輸出一段話 "to get from xx to yy takes n knight moves.",其中xx表示起點,yy表示終點,n為xx到yy的最短步數。

sample input

e2 e4

a1 b2

b2 c3

a1 h8

a1 h7

h8 a1

b1 c3

f6 f6

sample output

to get from e2 to e4 takes 2 knight moves.

to get from a1 to b2 takes 4 knight moves.

to get from b2 to c3 takes 2 knight moves.

to get from a1 to h8 takes 6 knight moves.

to get from a1 to h7 takes 5 knight moves.

to get from h8 to a1 takes 6 knight moves.

to get from b1 to c3 takes 1 knight moves.

to get from f6 to f6 takes 0 knight moves.

#include

#include

#include

#include

using namespace std;

int step;  

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

int map[10][10],ex,ey;  

char s1[5],s2[5];  

struct node  

;  int bfs()  

for(i = 0; i<8; i++)  //變換八個位置 

}  }  return 0;  

}  int main()  

return 0;  

}

結構體結合qsort排序

qsort的標頭檔案是stdlib.h,noip允許使用這個標頭檔案 一 對int型別陣列排序 int num 100 例如 int cmp const void a const void b qsort num,100,sizeof num 0 cmp 二 對char型別陣列排序 同int型別 c...

優先佇列 結構體

優先佇列與結構體 priority queue q 預設將佇列中的數從大到小排序 priority queue greater q 從小到大排序 priority queue less q 從大到小排序 佇列中可以的元素可以是結構體,乙個結構體中肯定有不同引數,優先佇列肯定要有乙個排序的引數,所以就...

qsort 與結構體相結合

題目描述 用一維陣列儲存學號和成績,然後,按成績排序輸出。輸入 輸入第一行包括乙個整數n 1 n 100 代表學生的個數。接下來的n行每行包括兩個整數p和q,分別代表每個學生的學號和成績。輸出 按照學生的成績從小到大進行排序,並將排序後的學生資訊列印出來。如果學生的成績相同,則按照學號的大小進行從小...