hdu詭異的樓梯 BFS 優先佇列)

2022-05-17 06:01:33 字數 1379 閱讀 9608

這題交了7次 悲劇了 前幾次 因為把+行想成是左右走了 一直wa 後來看出來了 又把走過的樓梯給標記了 這裡的樓梯不能標記

因為可以在原地等著樓梯轉變 加的時間有可能是2 這樣普通佇列滿足不了最少的先搜 就用優先佇列了

view code

1 #include2 #include

3 typedef struct

node

4st;

7int f[22][22];8

char c[22][22

];9 st q[10001

],t;

10int

d,p;

11void sort()//

把用時少的優先放在隊首

1222

else

23break;24

}25}26

void inque(int a,int

b)27

32int

main()33;

35while(scanf("

%d%d%*c

", &n,&m)!=eof)

3648

if(c[i][j] == 't'

)4953}

54getchar();55}

56 d = 0

;57 p = 0

;58 q[1].num = 0

;59 f[x[0]][y[0]] = 1

;60 inque(x[0],y[0

]);61

do62

85else

8690 f[qx+dis[i]][py] = 1;91

}92}93

else

94101 f[qx][py] = 1

;102

}103

}104

if(!f[px][qy]&&qy>0&&qy<=m&&(c[px][qy]=='

.'||c[px][qy]=='

|'||c[px][qy]=='

-'||c[px][qy]=='t'

))105

116else

117121 f[px][qy+dis[i]] = 1

;122

}123

}124

else

125132 f[px][qy] = 1

;133

}134

}135

}136 }while(d!=p);

137 printf("

%d\n

",q[p].num);

138}

139return0;

140 }

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

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

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

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

G 詭異的樓梯 (優先佇列 BFS)

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