SDUT 3474 湯圓 拯救計畫

2021-09-11 03:26:17 字數 1396 閱讀 5179

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代表湯圓公主...