作为输入,我有一个" map",这是一个多边形。它的所有边都与x轴或y轴平行(因此所有这些多边形都由矩形描述,它们由矩形组成,所有多边形的大小都是整数)。在这里,您可以看到正确和错误输入的示例。
第二个输入是我想要放入的一组矩形。所有矩形都用他们的尺寸宽度*高度来描述(每个矩形可以有不同的整数尺寸)。
对于给定的输入,我想知道是否可以将所有矩形放到地图上。如果是这样,我想得到所有矩形的位置。而且,我可以在矩形的位置上有更多的条件。例如,我知道地图中的两个矩形A,B必须连接在一边。
这个问题有什么有效的算法吗?我会说它可以转换成一些图形问题,但我不知道如何表示它。谢谢你的帮助!
答案 0 :(得分:0)
几乎可以肯定没有始终有效的算法,因为这个问题是NP-hard。要看到这一点,请注意您可以将NP-hard Partition Problem的任何实例减少为您的问题实例:
当且仅当原始分区问题实例有解决方案时,上述问题的实例才有解决方案,因此如果有一种有效的方法来解决您的问题,那么您可以使用相同的算法来有效地解决分区问题(并且,通过类似的减少,每个其他NP难题)。