沼躍魚早已看穿了一切

2021-06-28 11:55:05 字數 1176 閱讀 4689

沼躍魚開啟密碼門後發現門後是乙個像迷宮一樣的房間,牆上的指示牌寫著:房間內某處有一寶箱,但是寶箱被上鎖了,鑰匙在這個房間的某個角落。沼澤魚對寶箱裡有什麼很感興趣,但它必須先去拿到鑰匙才可以開啟寶箱。然而沼躍魚早已看穿了一切,它看清了這個房間的布局,現在給出房間的布局圖,問沼躍魚拿到鑰匙並開啟寶箱最少需要走多少步。沼躍魚每次只能向上、下、左、右中其中乙個方向走一步,但若那個位置是牆時則不能往那個位置走(顯然,沼躍魚不能穿牆)。

輸入的第一行是乙個整數t(0

每組資料的第一行有兩個整數n,m(0

接下來n行,每行有m個字元,『s』表示開始時沼躍魚所處的位置,『#』代表牆,『*』代表空地,『k』代表鑰匙,『b』表示寶箱。鑰匙只有一把。

詳情參看樣例輸入。

對於每組資料,輸出一行包含乙個整數x,x代表沼躍魚拿到鑰匙並開啟寶箱所需的最少步數。若沼躍魚不能夠拿到鑰匙並開啟寶箱(即到達不了鑰匙或寶箱所在處)則輸出-1。

15 6

***#b#

s**#*#

##***#

k#*#*#

***#*#

17對於樣例資料,房間寬5個單位,長6個單位。

從s出發到k需要的最少步數為8,而從k出發到b所需的最少步數為9.

所以答案為8 + 9 = 17.

請使用scanf("%s", s);或cin>> s;來讀取字串以避免出現漏讀多讀的情況。

ac**:

#include #include using namespace std;

char a[15][15];

int b[15][15];

int n,m;

int xy[2]=,,,};

struct s

queue[1100];

int bfs(int i,int j,int m1,int m2)

{ int head=0,tail=0,tx,ty,cx,cy,k,sum;

queue[tail].x=i;

queue[tail].y=j;

queue[tail].q=0;

tail++;

b[i][j]=1;

while(head=0&&tx=0&&ty> t;

while(t--)

{cin >> n >> m;

for(i=0;i

然而沼躍魚早就看穿了一切

時間限制 1000ms 單點時限 1000ms 記憶體限制 fjxmlhx每天都在被沼躍魚刷屏,因此他急切的找到了你希望你寫乙個程式遮蔽所有句子中的沼躍魚 marshtomp 不區分大小寫 為了使句子不缺少成分,統一換成 fjxmlhx 輸入包括多行。每行是乙個字串,長度不超過200。一行的末尾與下...

ZSC 1306 沼躍魚早已看穿了一切 題解

題目鏈結 沼躍魚開啟密碼門後發現門後是乙個像迷宮一樣的房間,牆上的指示牌寫著 房間內某處有一寶箱,但是寶箱被上鎖了,鑰匙在這個房間的某個角落。沼澤魚對寶箱裡有什麼很感興趣,但它必須先去拿到鑰匙才可以開啟寶箱。然而沼躍魚早已看穿了一切,它看清了這個房間的布局,現在給出房間的布局圖,問沼躍魚拿到鑰匙並開...

1082 然而沼躍魚早就看穿了一切

1082 然而沼躍魚早就看穿了一切 時間限制 1000ms 單點時限 1000ms 記憶體限制 256mb 描述 fjxmlhx每天都在被沼躍魚刷屏,因此他急切的找到了你希望你寫乙個程式遮蔽所有句子中的沼躍魚 marshtomp 不區分大小寫 為了使句子不缺少成分,統一換成 fjxmlhx 輸入 輸...