迷宮可是每個遊樂園必不可少的專案,菜菜當然是要嘗試一下啦。
這個迷宮比較特殊。與其說是迷宮,倒不如說是乙個巨大的格仔。遊樂園給菜菜發了一張地圖,地圖上標明了,這個格仔由n行m列共n*m個小格仔組成。有的格仔可以正常走,標為』.』;有的格仔有陷阱不能走,標為『#』;有的格仔比較特殊,標為『*』,可以向周圍八個方向可走的格仔走一格;目的地標記為『@』。菜菜從左上角處開始,並且可以按中國象棋中的馬和象的方式或者特殊格的八方向來走。如果按照最短的路徑到達目的地,則可以獲得獎勵。
菜菜當然想獲得獎勵啦,於是就來找你幫忙,請你幫忙計算最少需要多少步。
第一行,兩個正整數n,m。
接下來的n行m列描述了地圖。
乙個整數,表示所要走的最小步數。若無法到達目的地則輸出-1。
11 10
對於20%的資料,保證0<n,m≤20
對於100%的資料,保證0<n,m≤200
較長:
#include#include#include
#include
#include
#include
using
namespace
std;
const
int n=210
;const
int xmx=;
const
int xmy=;
const
int spx=;
const
int spy=;
struct
nodenow,nxt;
inta[n][n];
bool
vis[n][n];
intn,m;
intendx,endy;
queue
q;int
aaa;
inline
intread()
inline
void bfs(int startx,int
starty)
q.push(nxt);
aaa=q.size();}}
}else
if(a[x][y]==2
)
q.push(nxt);}}
}}
}int
main()
scanf("%c
",&c);
}bfs(
1,1);
printf("-1
");return0;
}
//kk:#include #include
#include
#include
#include
using
namespace
std;
const
int go1[20][2]= ;
struct
node ;
queue
q;int map[210][210],mark[210][210
],n,m;
char s[210
];int
main()
else map[i][j]=0
; }
t.x=sx;
t.y=sy;
t.w=map[1][1
]; t.step=0
; q.push(t);
mark[sx][sy]=1
;
while(!q.empty())
if(tmp.w==0
) }}
else}}
}if(f)printf("
-1\n");
return0;
}
Codevs 2855 遊樂園的迷宮
時間限制 1 s 空間限制 128000 kb 題目等級 gold 迷宮可是每個遊樂園必不可少的專案,菜菜當然是要嘗試一下啦。這個迷宮比較特殊。與其說是迷宮,倒不如說是乙個巨大的格仔。遊樂園給菜菜發了一張地圖,地圖上標明了,這個格仔由n行m列共n m個小格仔組成。有的格仔可以正常走,標為 有的格仔有...
2855 遊樂園的迷宮
時間限制 1 s 空間限制 128000 kb 題目等級 gold 迷宮可是每個遊樂園必不可少的專案,菜菜當然是要嘗試一下啦。這個迷宮比較特殊。與其說是迷宮,倒不如說是乙個巨大的格仔。遊樂園給菜菜發了一張地圖,地圖上標明了,這個格仔由n行m列共n m個小格仔組成。有的格仔可以正常走,標為 有的格仔有...
CODE 遊樂園的迷宮
題目 題目描述 description 迷宮可是每個遊樂園必不可少的專案,菜菜當然是要嘗試一下啦。這個迷宮比較特殊。與其說是迷宮,倒不如說是乙個巨大的格仔。遊樂園給菜菜發了一張地圖,地圖上標明了,這個格仔由n行m列共n m個小格仔組成。有的格仔可以正常走,標為 有的格仔有陷阱不能走,標為 有的格仔比...