Recursion 画家';基于动态规划的s划分

Recursion 画家';基于动态规划的s划分,recursion,dynamic-programming,recurrence,Recursion,Dynamic Programming,Recurrence,问题陈述: 你必须画N块长度为{A0,A1,A2…AN-1}的木板。有K个油漆工可供选择,您还可以获得油漆工绘制一个板单元所需的时间。你必须尽快完成这项工作,因为任何油漆工都只能画电路板的连续部分,比如说电路板{2,3,4}或者只有电路板{1},或者除了电路板{2,4,5}之外什么都不画 如何使用动态规划来解决这个问题。这个问题的一个近似方法是,如果i小于j,油漆工“i”只油漆剩下油漆工“j”油漆的木板。使用DP可以很容易地解决这个问题,但是如何使用DP来处理原始问题呢 谢谢你。我自己刚遇到这个

问题陈述:

你必须画N块长度为{A0,A1,A2…AN-1}的木板。有K个油漆工可供选择,您还可以获得油漆工绘制一个板单元所需的时间。你必须尽快完成这项工作,因为任何油漆工都只能画电路板的连续部分,比如说电路板{2,3,4}或者只有电路板{1},或者除了电路板{2,4,5}之外什么都不画

如何使用动态规划来解决这个问题。这个问题的一个近似方法是,如果i小于j,油漆工“i”只油漆剩下油漆工“j”油漆的木板。使用DP可以很容易地解决这个问题,但是如何使用DP来处理原始问题呢


谢谢你。

我自己刚遇到这个问题,我认为它真的很好

DP解决方案是考虑一个网格,其中一个自由度是画家的数量(从1到k),另一个是板列表的索引(当你遍历这个自由度时,你每次增加一个板)。 首先要注意的是,如果你有一个油漆工,那么画到木板A[i]所花费的时间就是到那时为止这些木板大小的总和。相反,如果你只有第一块板子,并且你一直在增加画师,所花费的时间仅仅是板子的大小,更多的画师没有帮助

现在的诀窍是考虑如何使用这些信息来计算两个油漆工和两块木板的最佳时间。让我们明确地画出表格的第一部分

     | k = 1 | k = 2 | k = 3 |
------------------------------
| b1 |  S_00 |  S_00 |  S_00 |
| b2 |  S_01 |       |       |
| b3 |  S_02 |       |       |
列索引是“k”是画家的数量,行索引是包括的板的数量(按顺序)。S_ij是一名油漆工油漆木板i至j的成本总和(因此S_00=A[0])

因此,对于两个油漆工和两块木板,一个油漆工的油漆都是S_01,每个油漆都是max(A[0],A[1]),因为时间将由较大的木板决定

因此,我们能用2名油漆工和2块木板做的最好的工作是这两个中的最小值,因此表中的新条目将是

min(S_01, max(A[0],A[1])
然后,您可以根据相同的逻辑继续填充表格


然而,真正酷的是,你可以在对数时间使用二进制搜索来完成这一点!这里我还假设所有的画家都以同样的速度作画,否则就更难了。

我自己也遇到了这个问题,我认为这真的很好

DP解决方案是考虑一个网格,其中一个自由度是画家的数量(从1到k),另一个是板列表的索引(当你遍历这个自由度时,你每次增加一个板)。 首先要注意的是,如果你有一个油漆工,那么画到木板A[i]所花费的时间就是到那时为止这些木板大小的总和。相反,如果你只有第一块板子,并且你一直在增加画师,所花费的时间仅仅是板子的大小,更多的画师没有帮助

现在的诀窍是考虑如何使用这些信息来计算两个油漆工和两块木板的最佳时间。让我们明确地画出表格的第一部分

     | k = 1 | k = 2 | k = 3 |
------------------------------
| b1 |  S_00 |  S_00 |  S_00 |
| b2 |  S_01 |       |       |
| b3 |  S_02 |       |       |
列索引是“k”是画家的数量,行索引是包括的板的数量(按顺序)。S_ij是一名油漆工油漆木板i至j的成本总和(因此S_00=A[0])

因此,对于两个油漆工和两块木板,一个油漆工的油漆都是S_01,每个油漆都是max(A[0],A[1]),因为时间将由较大的木板决定

因此,我们能用2名油漆工和2块木板做的最好的工作是这两个中的最小值,因此表中的新条目将是

min(S_01, max(A[0],A[1])
然后,您可以根据相同的逻辑继续填充表格


然而,真正酷的是,您可以使用二进制搜索在对数时间内完成此操作!在这里,我还假设所有的画家都以同样的速度作画,否则就更难了。

你的精心设计令人振奋,充满灵感。你能继续解释如何得到最终的动态规划解公式吗?另外,当你们有时间以后,也许你们也会详细阐述二进制搜索的解决方案。谢谢10k,-Charlie,你的精心设计让人激动人心。你能继续解释如何得到最终的动态规划解公式吗?另外,当你们有时间以后,也许你们也会详细阐述二进制搜索的解决方案。谢谢,10k,-查理