hdu1180詭異的樓梯 優先佇列 廣搜

2021-07-08 16:46:21 字數 743 閱讀 5685

好久沒寫部落格,主要還是因為週末的考試和昨天生態學實驗,憂傷的週末終於過去,更加的憂傷的日子已經來臨orz

————寫在前面的廢話

這個題本來第一眼看是中文的,十分興奮,結果……到底還是ac率20+%的題啊,理解錯乙個地方,有樓梯的地方不是只能順著走,只是順著走可以省時間1分鐘,能不能最後也省時間不一定……挺簡潔優雅的廣搜

/******

hdu1180

2015.12.7

0ms 1432k 2625 b g++

******/

#include"stdio.h"

#include"string.h"

#include"queue"

using namespace std;

int stair[22][22];

struct node

int judge2(int step,int x2,int y2,int k)

int bfs()

else

else//樓梯的方向是逆著的 但是很幸運接著走可以

q.push(next);}}

}return -1;

}int main()

{ //freopen("cin.txt","r",stdin);

int i,l;

int ans;

char str[25];

while(scanf("%d%d",&n,&m)!=-1)

{ for(i=0;i

HDU 1180 詭異的樓梯

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

HDU 1180 詭異的樓梯

bfs問題。題意是說爬樓梯的時候,有些樓梯是 有些是 而且每隔一分鐘就互相變化形態。只能上下,只能左右。爬樓梯的過程中,會變的樓梯不能停留,其他的可以停留。爬樓梯需要乙個單位時間,假如是 表明乙個單位時間從它左邊到它右邊或者 右邊到左邊。樓梯停留多次沒有意義,特殊樓梯只有2種旋轉狀態,多乙個wait...

hdu 1180 詭異的樓梯

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