總時間限制:
1000ms
記憶體限制:
65536kb
描述你現在身處乙個r*c 的迷宮中,你的位置用"s" 表示,迷宮的出口用"e" 表示。
迷宮中有一些石頭,用"#" 表示,還有一些可以隨意走動的區域,用"." 表示。
初始時間為0 時,你站在地圖中標記為"s" 的位置上。你每移動一步(向上下左右方向移動)會花費乙個單位時間。你必須一直保持移動,不能停留在原地不走。
當前時間是k 的倍數時,迷宮中的石頭就會消失,此時你可以走到這些位置上。在其餘的時間裡,你不能走到石頭所在的位置。
求你從初始位置走到迷宮出口最少需要花費多少個單位時間。
如果無法走到出口,則輸出"oop!"。
輸入第一行是乙個正整數 t,表示有 t 組資料。
每組資料的第一行包含三個用空格分開的正整數,分別為 r、c、k。
接下來的 r 行中,每行包含了 c 個字元,分別可能是 "s"、"e"、"#" 或 "."。
其中,0 < t <= 20,0 < r, c <= 100,2 <= k <= 10。
輸出對於每組資料,如果能夠走到迷宮的出口,則輸出乙個正整數,表示最少需要花費的單位時間,否則輸出 "oop!"。
樣例輸入
1樣例輸出6 6 2
...s..
...#..
.#....
...#..
...#..
..#e#.
7先貼個我的**,wrong了n次就是ac不了,崩潰了,大佬幫忙看看**的問題?
1 #include 2using
namespace
std;34
struct
node
7node() {}8};
9char a[105][105
];10
intt,r,c,k;
11int visit[105][105][15
];12
int dr[4]=;
13int dc[4]=;
14node start,goal;
15 queue q;
1617
intmain()
29if(a[i][j]=='e'
) 33
for(int k=0; k) 36}
37}38while(!q.empty())q.pop();
39 visit[start.r][start.c][0]=1;40
q.push(start);
41while(!q.empty()) else 56
if(!visit[rr][cc][ss]&&ss==0
) 60
if(!visit[rr][cc][ss]&&ss!=0&&a[rr][cc]=='.'
) 64}65
} 66}
67if(q.empty())cout<<"
oop!
"<68hhh:;69}
7071
return0;
72 }
下面的**為什麼就可以通過呢?
1 #include 23using
namespace
std;45
intr, c, k;
6int visited[105][105][15];7
int mmap[105][105];8
intsx, sy, ex, ey;
9int dir1[4] = , dir2[4] = ;
10int flag = 0;11
12struct
node
16};
17 queueall;
1819
void
bfs()
34if (mmap[xx][yy]==1&&visited[xx][yy][tmptime] == 0||mmap[xx][yy]==2&&
35 visited[xx][yy][tmptime] == 0&&tmptime==0)36
40}41}
42}4344
intmain()
4565
else
if (ch == 'e'
) 69
else
70 mmap[i][j] = 2;71
}72node origin(sx,sy);
73all.push(origin);
74 visited[sx][sy][0] = 1;75
bfs();
76if (!flag)
77 printf("
oop!\n");
78}79return0;
80 }
11I 變換的迷宮(bfs迷宮問題)
總時間限制 1000ms 記憶體限制 10000kb 描述愛好探險的你,找到一座裝滿了寶藏的迷宮的入口,你看到入口的大門上有乙個邊長為s的正方形的大鎖,旁邊散落著n塊正方形的金屬小片,你意識到鎖的鑰匙,即是用這n小塊,拼成大門上的正方形,你想知道是否能拼成這把鑰匙開啟迷宮的大門。輸入輸入包含多組陣列...
迷宮問題bfs
迷宮問題 採用佇列的廣度優先遍歷 bfs 思想是從乙個頂點v0開始,輻射狀地優先遍歷其周圍較廣的區域 找到的解為最優解 include define m 8 define n 8 define maxsize 1000 typedef struct box typedef struct qutype...
迷宮問題BFS
the code 資料結構迷宮.cpp 定義控制台應用程式的入口點。include stdafx.h include include include include define n 4 定義迷宮為4 4 using namespace std struct pot 為記錄路徑的rec準備,座標 x...