动态规划中的递推公式
问题描述:
其中l_1 = 1,l_2 = 4,l_3 = 5是不同长度的块,我需要用公式构造一个长度为l = 8的大块。动态规划中的递推公式
有人可以解释我以下公式:
的公式是在乳胶,与排列L = [1 + 1]
很抱歉的格式,但我`吨上传图片。
答
这个问题似乎是要找出做出更大块所需的块的最小数量是多少。此外,似乎没有限制可用的单个块的数量。
假设你有n个不同长度的块。 l1, l2 .. ln
。您可以用来制作一个长度为k
的大块的最小块数是多少?
的递推公式背后的想法是,你可以通过添加长度l1
的一个街区,你可能已经使用的块的最小数目由长度i-l1
的假设大块使长度i
块(因为这是你的L
数组所持有的数据,对于任何索引j
,它都包含制作大小为j
的块所需的最小块数。假设i-l1
块是使用4个块建立的。使用这4个块和另外一个大小为l1
的块,您使用5个块创建了一个大小为i
的块。
但是现在说一个大小为i-l2
的块只能使用3个块。然后,您可以轻松地将另一个大小为l2
的区块添加到此大小为i-l2
的区块,并使用4个区块创建一个大小为i
的区块!
这就是对所有可能的块长度进行迭代并选择最小值(在乳胶图像的第三行中提到)背后的想法。
希望有所帮助。