HDU 1180 優先佇列 bfs

2021-08-20 07:41:47 字數 797 閱讀 6487

判斷當前的方向和梯子的方向是否一致,如果一致則可以通行,否則需要在原地等待一分鐘。

開始考慮是否需要記錄當前的方向,其實只需要判斷當前的座標與上一步座標之間的關係,即可知道當前的方向與之前方向之間的關係即可,這個題做了好久啊。

#include #include #include #include using namespace std;

int m,n;

char graph[30][30];

int vis[30][30];

int dx = ;

int dy = ;

int sx,sy,ex,ey;

struct node

bool operator < (const node &a)const

};bool judge(node t)

int bfs()

else if(graph[tmp.x][tmp.y]=='-')

if(!judge(tmp)) continue;

if(graph[tmp.x][tmp.y]=='t') return tmp.step;

graph[tmp.x][tmp.y] = tmp.step;

q.push(tmp);}}

return 0;

}int main()

else if(graph[i][j]=='t')

memset(vis,0,sizeof(vis));

printf("%d\n",bfs());

}return 0;

}

HDU1180 詭異的樓梯(bfs 優先佇列)

problem description hogwarts正式開學以後,harry發現在hogwarts裡,某些樓梯並不是靜止不動的,相反,他們每隔一分鐘就變動一次方向.input 測試資料有多組,每組的表述如下 第一行有兩個數,m和n,接下來是乙個m行n列的地圖,表示障礙物,表示走廊,或者 表示乙個...

HDU1180 詭異的樓梯(bfs 優先佇列)

problem description input 測試資料有多組,每組的表述如下 第一行有兩個數,m和n,接下來是乙個m行n列的地圖,表示障礙物,表示走廊,或者 表示乙個樓梯,並且標明了它在一開始時所處的位置 表示的樓梯在最開始是豎直方向,表示的樓梯在一開始是水平方向.地圖中還有乙個 s 是起點,...

hdu 1180 詭異的樓梯(bfs)

小記 阿西吧!我就因為乙個dir方向搞錯了,寫的是從左往右是上下左右,用的時候是按上左下右。思路 bfs,首先我們假設沒有樓梯的情況,那麼問題就簡單很多了,bfs隨手可以打出來。打完後再繼續 我們現在要新增可變的樓梯上去。樓梯有個初始狀態,然後有個到達樓梯旁邊時的樓梯的狀態,而這個狀態時和你到達樓梯...