HDU 1180 詭異的樓梯

2021-06-25 20:13:43 字數 1077 閱讀 3509

bfs問題。

題意是說爬樓梯的時候,有些樓梯是 「 | 」,有些是「 - 」。而且每隔一分鐘就互相變化形態。

「 | 」只能上下,「 - 」只能左右。

爬樓梯的過程中,會變的樓梯不能停留,其他的可以停留。

爬樓梯需要乙個單位時間,假如是「 - 」表明乙個單位時間從它左邊到它右邊或者 右邊到左邊。

樓梯停留多次沒有意義,特殊樓梯只有2種旋轉狀態,多乙個wait 檢查就可以。

#include#include#include#include#include#include#include#include#include#include#include#include#define inf 0x7fffffff

#define eps 1e-8

#define ll long long

#define pi 3.141592654

#define clr(a,b) memset(a,b,sizeof(a))

#define for(i,a,n) for(int i= a;i< n ;i++)

#define debug puts("==****==")

#define acfun std::ios::sync_with_stdio(false)

#define size 20+10

using namespace std;

int xx=;

int yy=;

int n,m;

char g[size][size];

struct lx

friend bool operator< (lx a,lx b)

};lx start;

void bfs()

for(k,0,4)

else

if(wait[tmp.x][tmp.y])continue;

wait[tmp.x][tmp.y]=1;

now.init(tmp.x,tmp.y,tmp.lv+1);

q.push(now);}}

}}int main()

}bfs();

}}

HDU 1180 詭異的樓梯

題意 題意應該很好理解,就是從s到t的最少步數,只是加了乙個樓梯。思路 一看就是廣搜,找最少的步數,harry只能每次走到相鄰的格仔而不能斜走,每移動一次恰好為一分鐘,並且harry登上樓梯並經過樓梯到達對面的整個過程只需要一分鐘,harry從來不在樓梯上停留.並且每次樓梯都恰好在harry移動完畢...

hdu 1180 詭異的樓梯

要注意,雖然樓梯有時不能過,但是我們可以在樓梯前等一下,等到樓梯達到我們需要的狀態時再過,其實不用優先佇列也是可以的.具體自己去想吧.好久沒寫這麼長的 了 include include includeint m,n int tx,ty,sx,sy int visit 21 21 int dir 4...

HDU 1180 詭異的樓梯

problem description hogwarts正式開學以後,harry發現在hogwarts裡,某些樓梯並不是靜止不動的,相反,他們每隔一分鐘就變動一次方向.比如下面的例子裡,一開始樓梯在豎直方向,一分鐘以後它移動到了水平方向,再過一分鐘它又回到了豎直方向.harry發現對他來說很難找到能...