- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
问题:给定一组 n 种矩形 3-D 框,其中第 i^th 个框的高度为 h(i)、宽度为 w(i) 和深度为 d(i)(均为实数)。您想要创建一堆尽可能高的盒子,但是如果下方盒子的 2-D 底边的尺寸都严格大于 2-D 底边的尺寸,您只能将盒子堆叠在另一个盒子的顶部较高箱子的 D 底座。当然,您可以旋转一个盒子,使任何一侧都作为它的底面。也允许使用同一类型框的多个实例。
解决方案:我在 http://www.geeksforgeeks.org/dynamic-programming-set-21-box-stacking-problem/ 找到了以下解决方案
1) 生成所有框的所有 3 个旋转。旋转数组的大小变为原始数组大小的 3 倍。为简单起见,我们认为深度总是小于或等于宽度。
2) 将上面生成的3n个盒子按照底面积从大到小的顺序进行排序。
3) 对框进行排序后,问题与具有以下最优子结构属性的 LIS 相同。MSH(i) = 最大可能的堆叠高度,盒子 i 位于堆叠顶部MSH(i) = { Max ( MSH(j) ) + height(i) } 其中 j < i 和 width(j) > width(i) 和 depth(j) > depth(i)。如果没有这样的 j 那么 MSH(i) = height(i)
4) 为了获得整体最大高度,我们返回 max(MSH(i)) 其中 0 < i < n
我认为这个解决方案是错误的,因为它只考虑了所有盒子的 3 次旋转。为了得到正确的解决方案,它应该生成 6 个可能的旋转。那么,给定的解决方案是否不正确,或者他们在使用 6 次旋转时是否有任何缺陷?
最佳答案
请注意:
For simplicity, we consider depth as always smaller than or equal to width.
所以,如果一个盒子的尺寸是,例如,3、4、5,我们考虑以下三种方式将它放入堆栈:
其他三个旋转的深度大于宽度,所以我们不考虑它们:
为了查看是否有一个矩形a x b
可以被另一个完全覆盖c x d
, 将它们都转动就足够了 a <= b
和 c <= d
, 然后检查是否 a <= c
和 b <= d
.这就是它起作用的原因。
关于algorithm - 每个盒子的可能配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22754451/
这个问题在这里已经有了答案: CSS3 Flexbox: display: box vs. flexbox vs. flex (3 个答案) 关闭 1 年前。 今天我们中的许多人都知道 displa
$('.finalLink').html(" Click to Follow"); 我正在尝试创建一个以 super 框模式打开的链接。尝试了灯箱,结果相同。这些链接有效,但只是转到该网站。如果我静态
我使用了 RayHandler.useDiffuseLight(true) ,现在无论我设置什么环境光值,屏幕上未照亮的部分都是黑色的。这是正常的吗?我见过其他用 libgdx 制作的应用程序,它同时
我需要帮助解决一个简单的问题。我的任务即将结束,我们要制作不同的艺术人物。我制作了一个“正方形内的正方形”盒子,需要生成该盒子的 4 行和 4 列。 我认为最好的解决方案是多一些 for 循环,但不能
我怎样才能实现this effect使用 CSS 和/或 jQuery? 我会发布到目前为止我编写的代码,但它没有用...... 最佳答案 使用jQuery Masonry或Isotope为了达成这个
我写了下面的代码: for row in range(len(listOfLists)): print('+' + '-+'*len(listOfLists)) print('|',
我想知道如何在 CSS3 中制作成 Angular 盒子。喜欢这个网站: http://themeluxe.com/themes/glissando/ (白人) 我怎样才能使边框看起来更好、更平滑。
我正在尝试实现具有三个垂直部分的简单布局: 页面顶部的小标题。 主要内容,必要时展开,以便页脚保留在页面底部。 页面底部的页脚。 主要内容部分应进一步分为两部分:一个带有输入框和按钮的非常小的表单,以
我正在尝试构建如下图所示的网格 IMG 链接:http://postimg.org/image/qo3b4nof1/ 但我得到的 DIV E 几乎在 D-DIV 旁边 这是我的代码
如何修改fancybox盒子的定位?我希望它被定位,以便它漂浮在我的容器 div 中... 感谢您的宝贵时间和帮助! 最佳答案 jquery.fancybox-1.2.6 的第 255 行有这段代码
这个问题在这里已经有了答案: Inset border-radius with CSS3 (8 个答案) 关闭 9 年前。 border-radius 属性可以使盒子的 Angular 变圆。但是如
我创建了一个包装器元素,其中包含 2 个彼此相邻的行内 block 框(图片中为浅绿色和黄色)。然后我创建了另外两个 div,它们都嵌套在其中一个内联 block 中以使内容居中。它可以工作,但由于某
我在使用 WordPress 时遇到问题,在盒子中嵌套盒子。在 WordPress 之外,这工作正常。我确定只有一两个参数有误。 外框为dp23,内框为dp22由于某种原因,内框 (dp22) 之间存
我目前尝试在容器内排列盒子的结果是这样的输出。 但我想要实现的是, 用最大数量的框填充每一行,但每个框都有固定的填充和边距。我相信我已经做到了。 我需要每行中的单个框来覆盖剩余空间,间隙仅为 1 像素
我在下面有多个 flexbox 的代码。当页面展开时,我如何将它们垂直居中放置在页面中?我尝试在我的 flex-container 中使用 justify-content: center; 但当我使用
我有这样的布局: 我
我是编程新手,我注意到有人提到了 flex box。在阅读了很多相关内容之后,它似乎对我有用。唯一的问题是我在安装它时遇到了很多麻烦,即使在搜索了大约一个小时的帮助之后也是如此。我从 github 下
Vagrantfile有问题: # -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure("2") do |config| config
我正在尝试下载一个 Vagrant 的盒子,但他们的服务器此时非常缓慢。他们有公共(public)镜子吗?我想下载precision64.box 文件。 谢谢 最佳答案 尝试更可靠的: Vagrant
在一个父容器内,三个 div 彼此重叠。顶部 div 是固定高度。底部 div 的内容占用了未知数量的垂直空间,但需要显示其中的所有内容。顶部 div 应填充剩余的垂直空间。每一个 // 100%
我是一名优秀的程序员,十分优秀!