挑战
我在Marks and Spencers周围走来走去,发现他们在商店周围随机放置了空调。为了保持凉爽,我想知道在不离开空调装置太长时间的情况下在整个商店中移动的最简单方法是什么。
在给定地图的情况下,您必须找到一种在整个地图上行驶的方法,以保持与空调单元的距离尽可能短(即使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 |
+------+
在整个地图上旅行意味着要穿过每个空的空间和空调。您不能穿过墙壁,而只能正交。地图可能并不总是矩形的。
与交流单元的距离应尽可能短,这是所有时间步长的总和。
通过意味着进入和离开。
您可以按照自己喜欢的任何方式输出路径。示例包括:
- 输出包含路径的地图
- 将路径输出为连续的罗盘点(例如
NNSESW
)
2
@BetaDecay这是如何计算的?在任何时间点的最大距离?所有时间步长的距离之和/平均值?
—
IngoBürk'14
无法理解此问题的目的是什么。如果您必须访问每个广场,则最大距离是一个常数。
—
feersum 2014年
@feersum为什么?地图布局是否有必要重新审视某些正方形,从而为路径提供多个可能性?
—
InvisiblePanda 2014年
这是优化问题吗?如果没有,应该有一些输出正确的测试用例。
—
mbomb007'2013/
您能否为第一个示例提供仅两种可能的行驶方式的距离?
—
mdahmoune