我想知道是否有一种“最优”解决方案来解决这个问题:
我有一个大小为n x m(像素)的空间,上面有各种不同大小的p个矩形对象。现在我想在这个空间中放置q个相同大小的新对象,而没有任何重叠。
我想出的算法如下:
1. 创建大小为[(n)/(size_of_object_from_q)]x[(n)/(size_of_object_from_q)]的数组A[][]。 2. 遍历所有p中的元素,并对每个元素执行以下操作: 在A[][]中标记所有“位于”该元素上的字段为已占用。 3. 将q中的所有元素放置在A[][]中未被标记的相应位置上。
是否有更好的方法来解决这个问题?非常感谢您的帮助!
我有一个大小为n x m(像素)的空间,上面有各种不同大小的p个矩形对象。现在我想在这个空间中放置q个相同大小的新对象,而没有任何重叠。
我想出的算法如下:
1. 创建大小为[(n)/(size_of_object_from_q)]x[(n)/(size_of_object_from_q)]的数组A[][]。 2. 遍历所有p中的元素,并对每个元素执行以下操作: 在A[][]中标记所有“位于”该元素上的字段为已占用。 3. 将q中的所有元素放置在A[][]中未被标记的相应位置上。
是否有更好的方法来解决这个问题?非常感谢您的帮助!