constraints
time limit: 1 secs, memory limit: 32 mb
在乙個神秘的國度裡,年輕的王子paris與美麗的公主helen在一起過著幸福的生活。他們都隨身帶有一塊帶磁性的陰陽魔法石,身居地獄的魔王satan早就想得到這兩塊石頭了,只要把它們熔化,satan就能吸收其精華大增自己的魔力。於是有一天他趁二人不留意,把他們帶到了自己的地牢,分別困在了不同的地方。然後satan念起了咒語,準備煉獄,界時二人都將葬身於這地牢裡。
危險!paris與helen都知道了satan的意圖,他們要怎樣才能打敗魔王,脫離地牢呢?paris想起了父王臨終前留給他的備忘本,原來他早已料到了satan的野心,他告訴paris只要把兩塊魔法石合在一起,唸出咒語,它們便會放出無限的光亮,殺死魔王,脫離地牢,而且本子上還附下了地牢的地圖,paris從中了解到了helen的位置所在。於是他決定首先要找到helen,但是他發現這個地牢很奇怪,它會增強二人魔法石所帶磁力的大小,而且會改變磁力的方向。這就是說,每當pairs向南走一步,helen有可能會被石頭吸引向北走一步。而這個地獄布滿了岩石與熔漿,pairs必須十分小心,不僅他不能走到岩石或熔漿上,而且由於他行走一步,helen的位置也會改變,如果helen碰到岩石上,那麼她將停留在原地,但如果helen移動到了熔漿上,那麼她將死去,paris就找不到她了。
pairs仔細分析了地圖,他找出了一條最快的行走方案,最終與helen相聚。他們一起唸出了咒語"@^……%@%&$",轟隆一聲,地牢塌陷了,他們又重見光明……
輸入資料第一行為兩個整數n,m(3<=n,m<=20),表示地牢的大小,n行m列。接下來n行,每行m個字元,描述了地牢的地圖,".「代表通路,」#「代表岩石,」!「代表熔漿。輸入保證地牢是封閉的,即四周均是均是岩石或熔漿。接下來一行有四個字元"n」(北),「s」(南),「w」(西),「e」(東)的排列,表示paris分別向nswe四個方向走時helen受磁石磁力影響的移動方向。
輸出檔案只有一行,如果paris能找到helen,輸出一整數d,為paris最少需要行走的步數;如果paris在255步之後仍找不到helen,則輸出"impossible"。注意相遇是指paris與helen最終到達同乙個格仔,或者二人在相鄰兩格移動後碰在了一起,而後者的步數算他們移動後的步數。
5
5#####
#h..##.!
.##.#p#
#####
wnse
解釋:paris行走方案為nnwws,每步過後helen位置在(2,2), (2,2), (3,2), (4,2), (3,2)。
就老老實實地用廣度優先搜尋就好了
/// ac **
#include
#include
using namespace std;
#include
const
int maxn =22;
char map[maxn]
[maxn]
;int meg[4]
;// n s w e
struct node };
// n s w e
int opx[4]
=;int opy[4]
=; bool visited[maxn]
[maxn]
[maxn]
[maxn]
;int n, m;
node bfs
(node now)if(
!visited[px]
[py]
[hx]
[hy]
)else
if(px == hx && py == hy)
q.push
(node
(px,py,hx,hy,front.steps +1)
);}}
}}}return
node(0
,0,0
,0,256);
}int
main()
else
if(map[i]
[j]==
'h')}}
string s;
cin >> s;
for(
int i =
0; i <4;
++i)
now =
bfs(now);if
(now.steps >
255) cout <<
"impossible"
<< endl;
else cout << now.steps << endl;
}}
1215 脫離地牢
此題有個巨大的吐槽的地方就是最終狀態的判定有兩種情況,相遇或者到乙個格仔裡,不要忘記當隊列為空要判定狀態為結束。還有可以用方向來代表陣列的下標,是 更具有可讀性。include include include using namespace std intconst maxn 50 char map...
sicily 1215 脫離地牢
做sicily 1215脫離地牢 這一題,一直restrict function,都快崩潰了。最後發現是記憶體洩露,就是new出來的東西沒有及時delete導致的。具體是在廣度優先搜尋的時候,每找一次鄰居就new出一些節點,有些節點已被visited了然後我直接忽略它們,實際上是得把它們delete...
sicily 1215 脫離地牢
time limit 1 secs,memory limit 32 mb 在乙個神秘的國度裡,年輕的王子paris與美麗的公主helen在一起過著幸福的生活。他們都隨身帶有一塊帶磁性的陰陽魔法石,身居地獄的魔王satan早就想得到這兩塊石頭了,只要把它們熔化,satan就能吸收其精華大增自己的魔力。...