此題有個巨大的吐槽的地方就是最終狀態的判定有兩種情況,相遇或者到乙個格仔裡,不要忘記當隊列為空要判定狀態為結束。還有可以用方向來代表陣列的下標,是**更具有可讀性。
#include
#include
#include
using
namespace
std;
intconst maxn = 50;
char
map[maxn][maxn];
int vis[maxn][maxn][maxn][maxn];
int r,c;
int dr1 = ;
int dc1 = ;
char dre[6];
int dr2[4],dc2[4];
struct point
}p1;
bool isin(const point& tmp)
bool isend(const point& tmp)
void f()
if (dre[i]=='s')
if (dre[i]=='w')
if (dre[i]=='e')
}}int bfs()
point pp(nr1,nc1,nr2,nc2,tmp.val+1);
if(isin(pp)&&map[nr1][nc1]=='.'&&map[nr2][nc2]!='!'&&!vis[nr1][nc1][nr2][nc2]) }}
return -1;
}int main()
if (map[i][j]=='h')
}vis[p1.r1][p1.c1][p1.r2][p1.c2]=1;
cin>>dre;
f();
int ans = bfs();
if(ans!=-1) cout
cout
<<"impossible"
/方向容易編碼錯誤,題意的理解也容易發生錯誤。
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就能吸收其精華大增自己的魔力。...
BFS Sicily 1215 脫離地牢
constraints time limit 1 secs,memory limit 32 mb 在乙個神秘的國度裡,年輕的王子paris與美麗的公主helen在一起過著幸福的生活。他們都隨身帶有一塊帶磁性的陰陽魔法石,身居地獄的魔王satan早就想得到這兩塊石頭了,只要把它們熔化,satan就能吸...