0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

TopCoder SRM 736 Div2 Hard MazeWithKeys

Posted at

迷路探索の変形。「カギと扉」を追加。
カギ"a"をとると、扉"A"を開くことができる。

ゴールは固定、スタート位置となりうる点を探す。
条件として、扉を一度も開かずにゴールへ行ってはいけない。
カギがなくて扉を開けないのもダメ。

全部で90分かかった。
解法は20分で思いついたが実装に30分ぐらい掛かってしまい、
マップ全体が正方形だと思い込んで40分ぐらいデバッグしたのが痛い。

以下評価方法に従ってスタート地点候補を一つずつ評価する。

1. 候補地点から探索開始して、カギとゴールを取れる限り取得
2. その候補地点での初回での探索でゴールを見つけてしまったら失敗(条件に合わない)
3. 何も見つけられなかったら失敗(たどり着けない)
4. カギを見つけられたら、マップを更新して見つけられたカギと扉を消して、再度探索。
5. ゴールを見つけられたらスタート地点になりうる。

カギの種類はアルファベットの数だけなので最大26回ループ。
探索はN * M = 50 * 50 = 最大2500個
候補地点も同じく最大2500個

理論的には1億超えてしまうが実際の候補地点は壁があるので半分程度。
問題的にはどうにかなったっぽいが、チャレンジとかされたら多分ダメなんだろうな。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?