【发布时间】:2009-11-25 20:13:19
【问题描述】:
我想知道这个问题是否有“最佳”解决方案:
我有一个 n x m(像素)大小的空间,上面有 p 个预先存在的矩形 - 上面有各种大小的对象。现在我想在这个空间中放置 q 个(相同大小的)新对象,而不会有任何重叠。
我想出的算法:
- 创建大小为
[(n)/(size_of_object_from_q)]x[(n)/(size_of_object_from_q)]的数组A[][] -
从 p 中迭代所有元素并为每个元素:
mark all fields in A[][] as occupied, where the element "lies" 将 q 中的所有元素放在 A[][] 中的字段未标记的相应位置
(男孩,我希望我能理解这一点......)
有没有更好的方法来做到这一点?任何帮助将不胜感激!
【问题讨论】:
-
澄清一下,您不能重新定位现有对象,对吗?
-
您的“q 个相同大小的新对象”是什么形状?它们都是矩形吗?你可以旋转它们吗?
标签: algorithm object partitioning