hrbust 1948我又回來了 基礎bfs

2021-08-13 13:08:47 字數 1875 閱讀 9357

我又回來了

time limit: 1000 ms

memory limit: 32768 k

total submit: 165(68 users)

total accepted: 66(58 users)

rating:

special judge: no

description

小輝穿越到了乙個很適合他的年代,22023年,他發現雖然他還在地球上,但是這個世界早已不同,經過了世界大破滅,天地大變,已經到了能夠修真的年代,他也加入了乙個宗門,少林寺。。。一天,小輝想去找小尼姑們一起快樂地玩耍,他知道這個世界存在著傳送門,在一瞬間就可以從乙個地方傳送到另外乙個有傳送門的地方,他的**病(討厭走路)又犯了,他決定到哪個小尼姑那裡的步數最少,就去找哪個小尼姑。

首先給出小輝和小尼姑所在的n*n平面圖,如圖為6*6平面圖。

有q個小尼姑,每個小尼姑所在的地點用座標表示,左上角處座標為(0,0)。

圖中'*'代表小輝所在的位置,圖中即(1,1),'.'代表空地,'#'代表不能直接通過的建築物,'@'代表傳送門,傳送門不是不能通過的建築物。

小輝將去找他所能到達的並且離他步數最少的那個小尼姑。

小尼姑的位置可能在除建築物的任意位置上。

input

有多組測試資料,處理到檔案結束。

對於每組測試資料,第一行是兩個整數n(2<=n<=100),q(1<=q<=1000),分別代表地區的邊長和小尼姑的個數.

接下來輸入n*n平面圖,代表地區平面圖。

然後q行,每行乙個座標代表小尼姑所在位置。

output

輸出小輝到那個小尼姑的步數,如果沒有滿足條件的小尼姑,則輸出cry,最後換行.

sample input

6 3

....#.

.*.#..

..@...

######

.@....

.....@

0 51 4

4 13 2

*@.###

..@0 2

2 1

sample output

2

2

和2188的傳送門不同,這個題的傳送門可以走也可以不走,所以所有非#點都要存進佇列,卡在這裡wa了好幾波;

#includeusing namespace std;

int n, k, num;

char maps[105][105];

int step[4][2] = ;

int vis[105][105];

int black_hole[10005][2];

int mm[1005][2];

struct node

op, uv;

void bfs(int nx, int ny)

}q.pop();

for(int i = 0; i < 4; i++)

}for(int j = 0; j < num; j++)}}

vis[uv.x][uv.y] = 1;

uv.step = op.step + 1;

q.push(uv);}}

}cout << "cry" << endl;

return;

}int main()

if(maps[i][j] == '@')}}

for(int i = 0; i < k; i++)

cin >> mm[i][0] >> mm[i][1];

n--;

bfs(xx, yy);

}return 0;

}

我又回來了

建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 我又回來了 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了...

我胡漢三又殺回來了

本來信誓旦旦的說要去當健身教練的工作,但是奈何啊,今年趕上這種時候,等到我終於從老家趕回上海的時候,身材是徹徹底底廢了,更要命的是,健身房不開門,然後我就在家裡絕望的看著肌肉一點點沒掉,然後我慶幸自己腦子還是蠻靈光的,就想到要不就先去附近的商業健身房裡當健身房的會籍,可以在閒暇時鍛鍊身體,並且積累起...

我小蘇太狼又回來了

嗯哼,好久好久不見了,雖然也經常翻部落格,但是很少寫部落格了,問就是一直在玩,當鹹魚。距離上一次寫部落格是2019年的11月27日,差不多一年了,沒有再寫部落格 我是個混子,dbq.廢了這麼久,也該準備回歸正常生活了,每天無所事事也是挺無聊的,無聊了一年了。往後的部落格可能會不那麼正經,記錄生活,本...