![]() |
1
2
请注意:
因此,如果一个盒子的尺寸是,例如,3、4和5,我们考虑以下三种方法将其放在堆栈上:
其他三个旋转的深度大于宽度,因此我们不考虑它们:
为了查看一个矩形
|
![]() |
2
1
不,考虑每个盒子的3个“旋转”就足够了,因为要考虑的唯一可能性是 使盒子顶部和底部垂直于哪个尺寸 ,其中只有3个。用这种方式来考虑每个盒子的3种不同的可能性,而不是旋转,可能会有所帮助。 主要的一点是,在我们选择了盒子的哪对边将是顶部和底部(我们可以用三种方式做到这一点)之后,我们不需要尝试盒子在平面中的两种不同旋转。我们总是可以按照盒子宽于盒子深的旋转。我们如何知道这样做不会错过任何潜在的好解决方案?因为在任何有一个比宽更深的盒子的解决方案中,必须有一个最低的盒子b,并且盒子和上面的所有东西都可以安全地旋转90度。(我们知道这样做是安全的,因为它是解决方案中最低的一个这样的盒子——所以它下面的盒子(如果有的话)必须比它深,这意味着如果我们旋转b 90度,它仍然必须放在这个较低的盒子里(我建议用代数方法验证)。)我们可以在不改变解决方案高度的情况下,不断变换解决方案中比宽框更深的最低值,直到没有剩余值。因为我们可以这样做 任何 包含一个或多个比宽框更深的解决方案,这意味着每一个解决方案在质量上完全等同于某个解决方案,其中每个框都比深框宽,因此我们可以完全忽略前面的解决方案。 |
![]() |
danial · 如何在多个字符串的每个位置找到最频繁的字符 2 年前 |
![]() |
Manny · 如何比较Perl中的字符串? 2 年前 |
![]() |
Diret · 获取范围内每个数字的子倍数的算法 2 年前 |
![]() |
Saif · 排序时python如何决定何时调用比较器? 2 年前 |