チャレンジ
マークスとスペンサーを歩いていると、店の周りにエアコンユニットがランダムに配置されていることに気付きました。冷静を保ちたいと思った私は、エアコンユニットから離れすぎずに店全体を動き回る最も簡単な方法は何だろうと考えました。
マップが与えられたら、エアコンユニットからの距離をできるだけ短く保ちながら、マップ全体を移動する方法を見つける必要があります(ACユニットが壁の反対側にある場合でも)。
地図
マップは任意の方法で提供でき、次の記号を使用します。
+ is a corner of a wall
| is a east/west facing wall
- is a north/south facing wall
X is an air conditioning unit
S is the start and end point
マップの例は次のとおりです。
+------S---+
| X |
| ---+-+ X |
| |X| |
| ---+ +---+
| X |
+----------+
または
+---+--+
| X | |
| | +-----+------+
| | X | X |
| ---+ | S
| | | X | |
| | +-+-------+--+
| X |
+------+
マップ全体を移動するということは、すべての空きスペースとエアコンを通過することを意味します。壁を通過することはできず、直交方向にのみ移動できます。マップは常に長方形であるとは限りません。
ACユニットからの距離をできるだけ短くすることは、すべてのタイムステップの合計です。
パススルーとは、出入りを意味します。
任意の方法でパスを出力できます。例は次のとおりです。
- パスを含めてマップを出力する
- コンパスポイントの連続としてパスを出力(例
NNSESW
)
2
@BetaDecayそして、それはどのように計算されますか?ある時点での最大距離は?すべての時間ステップにわたる距離の合計/平均?
—
インゴバーク14年
この問題の目的を理解することは不可能です。すべての広場を訪れる必要がある場合、最大距離は一定です。
—
feersum
@feersumそれはなぜですか?マップレイアウトでは、特定の正方形を再訪する必要があり、パスに複数の可能性を与えることができませんでしたか?
—
InvisiblePanda 14年
これは最適化の問題ですか?そうでない場合は、正しい出力のテストケースがいくつかあるはずです。
—
mbomb007 16
最初の例のたった2つの可能な移動方法の距離を教えていただけますか?
—
mdahmoune