time limit: 1000 ms memory limit: 65536 kib
problem description
又到了湯圓星球一年一度的湯圓節了,但是大魔王卻過來把湯圓公主抓走了σ( ° △ °|||)︴
身為湯圓騎士的qaq蒟蒻自然而然的肩負著拯救湯圓的使命
qaq蒟蒻經歷了千辛萬苦(並沒有)之後,來到了大魔王的城堡,根據情報,湯圓公主就被大魔王放在城堡內,然後qaq蒟蒻發現自己是乙個路
痴,所幸的是他拿到了大魔王的城堡的地圖,而且在這上面標註了自己和湯圓公主的位置,那麼問題來了,聰明的你能幫他計算出需要多少單位
的時間來趕到湯圓公主的位置嗎?
ps:qaq蒟蒻每一次都可以移動到相鄰的非牆的格仔中,每次移動都要花費1個單位的時間
有公共邊的格仔定義為相鄰
input
一開始為乙個整數t代表一共有t組資料
每組測試資料的第一行有兩個整數n,m (2<=n,m<=300)
接下來的n行m列為大魔王的迷宮,其中
』#』為牆壁,『_『為地面
a代表qaq蒟蒻,o代表湯圓公主:
output
一組資料輸出乙個整數代表從qaq蒟蒻到湯圓的位置的最短時間
如果qaq蒟蒻不能到達湯圓的位置,輸出-1
sample input
23 3
__a_##
__o2 2
a##o
sample output6-1
hint
source
qasq
#include #include #include struct
que[90002];
int map[305][305], in, out, begini, beginj, endi, endj;
int next[4][2] = ,,,};
int n, m;
void f()}}
out++;
}}int main()
else if(ch=='_')
else if(ch=='a')
else}}
for(i=0; i<=n+1; i++)
for(i=0; i<=m+1; i++)
in = 0;
out = 1;
que[++in].x = begini;
que[in].y = beginj;
que[in].step = 0;
map[begini][beginj] = 0;
f();
if(in >= out) printf("%d\n", que[in].step);
else printf("-1\n");
}return 0;
}
sdut oj 3474 湯圓 拯救計畫
time limit 1000 ms memory limit 65536 kib submit statistic problem description 又到了湯圓星球一年一度的湯圓節了,但是大魔王卻過來把湯圓公主抓走了 身為湯圓騎士的qaq蒟蒻自然而然的肩負著拯救湯圓的使命 qaq蒟蒻經歷了千...
湯圓 拯救計畫
problem description 又到了湯圓星球一年一度的湯圓節了,但是大魔王卻過來把湯圓公主抓走了 身為湯圓騎士的qaq蒟蒻自然而然的肩負著拯救湯圓的使命 qaq蒟蒻經歷了千辛萬苦 並沒有 之後,來到了大魔王的城堡,根據情報,湯圓公主就被大魔王放在城堡內,然後qaq蒟蒻發現自己是乙個路 痴,...
湯圓 拯救計畫
qaq蒟蒻每一次都可以移動到相鄰的非牆的格仔中,每次移動都要花費1個單位的時間 有公共邊的格仔定義為相鄰 input 一開始為乙個整數t代表一共有t組資料 每組測試資料的第一行有兩個整數n,m 2 n,m 300 接下來的n行m列為大魔王的迷宮,其中 為牆壁,為地面 a代表qaq蒟蒻,o代表湯圓公主...