特定の方向 (上、左、下、または右) を向いている 2 人の人間がいます。それらは時計回り、反時計回りに回転し、1 つ前に移動できます。両方の人間が障害のあるボードに乗っています。どちらも、座標で表される特定の位置(x,y)
とエネルギー量を持っています。ENERGY_MOVE
動いたり向きを変えたりするには、ある程度のエネルギーが必要ENERGY_TURN
です。
目標は、これら 2 人の人間をできるだけ近づけることです (マンハッタン距離で表されます)。マンハッタン距離は障害物を考慮していません (したがって、実際には、可能な限り最小限のエネルギーを使用しながら、人間を互いにできるだけ近づけることが問題です)。ソリューションは最適でなければなりません。
Dijkstra がこれを処理できることがわかりましたが、1 つの問題があります。Java 配列には整数インデックスがあるため、すべての頂点を格納することはできません。どうすればこれを解決できますか?