一本通 P1256 獻給阿爾吉儂的花束

2021-09-02 22:44:25 字數 1211 閱讀 9586

p1256:獻給阿爾吉儂的花束

時間限制: 1000 ms 記憶體限制: 65536 kb

提交數: 1636 通過數: 660

【題目描述】

阿爾吉儂是乙隻聰明又慵懶的小白鼠,它最擅長的就是走各種各樣的迷宮。今天它要挑戰乙個非常大的迷宮,研究員們為了鼓勵阿爾吉儂盡快到達終點,就在終點放了一塊阿爾吉儂最喜歡的乳酪。現在研究員們想知道,如果阿爾吉儂足夠聰明,它最少需要多少時間就能吃到乳酪。

迷宮用乙個r×c的字元矩陣來表示。字元s表示阿爾吉儂所在的位置,字元e表示乳酪所在的位置,字元#表示牆壁,字元.表示可以通行。阿爾吉儂在1個單位時間內可以從當前的位置走到它上下左右四個方向上的任意乙個位置,但不能走出地圖邊界。

【輸入】

第一行是乙個正整數t(1 ≤ t ≤ 10),表示一共有t組資料。

每一組資料的第一行包含了兩個用空格分開的正整數r和c(2 ≤ r, c ≤ 200),表示地圖是乙個r×c的矩陣。

接下來的r行描述了地圖的具體內容,每一行包含了c個字元。字元含義如題目描述中所述。保證有且僅有乙個s和e。

【輸出】

對於每一組資料,輸出阿爾吉儂吃到乳酪的最少單位時間。若阿爾吉儂無法吃到乳酪,則輸出「oop!」(只輸出引號裡面的內容,不輸出引號)。每組資料的輸出結果佔一行。

【輸入樣例】

33 4

.s…###.

…e.3 4

.s….e…

…3 4

.s…

…e.【輸出樣例】51

oop!

#include#includeusing namespace std;

bool a[201][201],v[201][201];

int qi[100001],qj[100001],qans[100001];

int dis[4][2]=,,,};

int main()

if(c=='e')

}int head=0,tail=1;

bool ok=false;

qi[0]=si;

qj[0]=sj;

v[si][sj]=true;

while(head!=tail)

head++;

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

}} if(!ok)

cout<<"oop!"<}

return 0;

}

1256 獻給阿爾吉儂的花束

傳送門 阿爾吉儂是乙隻聰明又慵懶的小白鼠,它最擅長的就是走各種各樣的迷宮。今天它要挑戰乙個非常大的迷宮,研究員們為了鼓勵阿爾吉儂盡快到達終點,就在終點放了一塊阿爾吉儂最喜歡的乳酪。現在研究員們想知道,如果阿爾吉儂足夠聰明,它最少需要多少時間就能吃到乳酪。迷宮用乙個r c的字元矩陣來表示。字元s表示阿...

資訊學奧賽一本通 1256 獻給阿爾吉儂的花束

時間限制 1000 ms 記憶體限制 65536 kb 提交數 1696 通過數 685 阿爾吉儂是乙隻聰明又慵懶的小白鼠,它最擅長的就是走各種各樣的迷宮。今天它要挑戰乙個非常大的迷宮,研究員們為了鼓勵阿爾吉儂盡快到達終點,就在終點放了一塊阿爾吉儂最喜歡的乳酪。現在研究員們想知道,如果阿爾吉儂足夠聰...

獻給阿爾吉儂的花束

阿爾吉儂是乙隻聰明又慵懶的小白鼠,它最擅長的就是走各種各樣的迷宮。今天它要挑戰乙個非常大的迷宮,研究員們為了鼓勵阿爾吉儂盡快到達終點,就在終點放了一塊阿爾吉儂最喜歡的乳酪。現在研究員們想知道,如果阿爾吉儂足夠聰明,它最少需要多少時間就能吃到乳酪。迷宮用乙個 r c 的字元矩陣來表示。字元 s 表示阿...