描述:
木乃伊地下宮殿是乙個6行6列的迷宮。作為敢到木乃伊地下宮殿裡去探險的你,有沒有跟木乃伊抓迷藏的心理準備呵!遊戲在木乃伊所在的迷宮裡展開,任務就是盡快趕到出口。你一次只能走一步,而木乃伊可以走兩步,但木乃伊是很笨的,他總是先盡量跟你達到同一列,如果已經是同一列了,他才會像你走來,有牆的地方人和木乃伊都不能過,你可以利用障礙物牽制住木乃伊。
輸入:
先輸入牆的數量n,然後在後續的n行裡每行有3個數表示一堵牆,3個數分別為格仔的行、列和牆的位置(0表示這個格仔的下方是牆,1表示這個格仔的右方是牆),再下來的3行每行2個數,分別表示木乃伊、人還有出口的位置。
輸出:
如果能安全逃生則輸出yes,否則輸出no,答案佔一行。
輸入樣例:
5輸出樣例:0 0 0
1 1 1
1 4 1
3 4 1
4 3 0
3 33 1
5 5
no
#include
#include
#include
using namespace std;
int n;
int ditu[8][8]=; //地圖的邊上是為了防止陣列越界 。
int x1,y1,x2,y2,x3,y3; //分別表示人的座標 木乃伊座標 終點座標。
int a,b,c,d;
int a1,b1,c1,d1;
queueq1;
queueq2; //用來存放人的位置
queueq3;
queueq4; //用來存放木乃伊的位置。
int dr[4]=; //四個方向左下右上行的變化情況
int dc[4]=; //列的變化情況
void readdata();
void init();
int bfs();
int canmoveto(int n);
void mugo();
int main()
if(m==1)
} cin>>x1>>y1;
x1=x1+1;
y1=y1+1;
cin>>x2>>y2;
x2=x2+1;
y2=y2+1;
cin>>x3>>y3;
x3=x3+1;
y3=y3+1; //因為我的地圖邊框多一圈,所以座標要整體加一。 }
void init()
while(j<8)
q1.push(x2);
q2.push(y2);
q3.push(x1);
q4.push(y1); }
int bfs()
if((a1!=x3||b1!=y3)&&(a1!=c1||b1!=d1))//沒到終點且沒被抓到就放入佇列。
} }
} return 0; }
int canmoveto(int n)
else if(n==1&&ditu[a+1][b]==0&&(a+1!=c||b!=d))
else if(n==2&&ditu[a][b+1]==0&&(a!=c||b+1!=d))
else if(n==3&&ditu[a-1][b]==0&&(a-1!=c||b!=d))
return 0; }
void mugo()
}else if(d!=b1)
if(dc1&&ditu[c1+1][d1]==0)//木乃伊在人的上方
}else if(d1!=b1)
if(d1
NOJ1147 演算法實驗三 木乃伊迷宮
時限 1000ms 記憶體限制 10000k 總時限 3000ms 描述木乃伊地下宮殿是乙個6行6列的迷宮。作為敢到木乃伊地下宮殿裡去探險的你,有沒有跟木乃伊抓迷藏的心理準備呵!遊戲在木乃伊所在的迷宮裡展開,任務就是盡快趕到出口。你一次只能走一步,而木乃伊可以走兩步,但木乃伊是很笨的,他總是先盡量跟...
小木乃伊到我家(spfa演算法)
aa的歐尼醬qwb是個考古學家,有一天qwb發現了只白白圓圓小小的木乃伊,它是個愛哭鬼卻很努力。qwb想把這麼可愛的小木乃伊送給 aa,於是便找上了快遞姐姐,這下可讓快遞姐姐犯愁了,因為去往aa家的路實在太難走了 甚至有可能沒有路能走到aa家 快遞姐姐 找上聰明的acmer,想請你幫忙找出最快到達a...
迷宮 藍橋 迷宮 BFS DFS
很久沒有認真的寫一道dfs和bfs的題了 今天早上這個題花了1個多小時,竟然還沒對。答案一直出錯,我都快崩潰了,那麼簡單的題。我tm 晚上又重寫了一遍,答案對了。但是還是不知道為什麼早上的錯了。也沒留備份。include include include using namespace std con...