- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在Introduction to Algorithms(CLRS) , Cormen 等人。下面谈谈求解Rod-cutting问题(第369页)
EXTENDED-BOTTOM-UP-CUT-ROD(p, n)
let r[0...n] and s[0....n] be new arrays
r[0] = 0
for j = 1 to n:
q = -infinity
for i = 1 to j:
if q < p[i] + r[j - i]: // (6)
q = p[i] + r[j - i]
s[j] = i
r[j] = q
return r and s
这里p[i]
是切割长度为i的价格,r[i]
是切割长度为i的 yield , >s[i]
,为我们提供了第一 block 要切断的最佳尺寸。
我的问题是关于将 j
从 1
迭代到 n
的外循环和内循环 i
也从 1
到 n
。
在第 6 行,我们将 q
(目前获得的最大收入)与 r[j - i]
进行比较,r[j - i]
是上一次切割期间获得的最大收入。
当 j = 1 and i = 1
时,它似乎没问题,但是紧接着 j = 1 and i = 2
的内循环的下一次迭代, r[j - i] 不会是 r[1 - 2] = r[-1]
吗?
我不确定负索引在这里是否有意义。这是 CLRS 中的拼写错误还是我在这里遗漏了什么?
我想你们中有些人不知道切杆问题是什么,这里是 example .
最佳答案
这是关键:for i = 1 to j
i
将从 1 开始增加值直到但不超过 j
的值。
i
永远不会大于 j
,因此 j-i
永远不会小于零。
关于algorithm - 了解自下而上的切杆实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5507292/
看起来很简单,但我没有任何成功。 非常简单,使用 AHK,我想从下往上获取工作表中最后一行的编号,其中包含一个值。我不能自上而下,因为有些行是空白的,所以必须自下而上。 我的代码遍历选定文件夹中的所有
元素的合并排序过程步骤是什么:20 47 15 8 9 4 40 30 12 17 我遇到过这个...... Pass1: |20 47| |8 15| |4 9| |30 40| |12 17| P
我正在尝试将脚本添加到我网站上的一个页面,这是一种过渡效果,其中 div 在 View 中从下向上移动。我成功地将完全相同的脚本添加到另一个页面并且它有效,但由于某种原因,它在另一个页面上不起作用。我
我正在使用 WIC (Windows Imaging Component) 来解码图像文件并访问像素数据。我试图找出像素顺序(即自下而上或自上而下)。 我用 IWICImagingFactory::C
我想在 Reporting Services 的文本框中垂直自下而上地显示我的文本。我已经可以通过转到文本框的 WritingMode 属性并切换到 'tb-rl' 使其自上而下,但没有自下而上的选项
我是一名优秀的程序员,十分优秀!